Skip to main content

obz-greptimedb

GreptimeDB provider for obz. Covers PromQL metric query, labels, label-values, and series commands via GreptimeDB's Prometheus-compatible API. Use this skill when the user mentions "GreptimeDB", "Greptime", "obz metric -p greptimedb", or needs to query metrics stored in a GreptimeDB instance.

소스 정보

저장소
alibaba/obz-cli
최근 소스 활동
2026년 5월 13일 12:12
감지된 SKILL.md 언어
영어
스타
27
포크
9

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
obz-greptimedb
description
GreptimeDB provider for obz. Covers PromQL metric query, labels, label-values, and series commands via GreptimeDB's Prometheus-compatible API. Use this skill when the user mentions "GreptimeDB", "Greptime", "obz metric -p greptimedb", or needs to query metrics stored in a GreptimeDB instance.
# obz-greptimedb: GreptimeDB Provider ## Quick Reference | Field | Value | |------------------|----------------------------------------------------| | Aliases | `greptimedb`, `greptime` | | Signal | Metric | | Query language | PromQL | | Default port | 4000 (HTTP) | | Auth | Bearer token, Basic auth, or no auth | | Provider flags | None | | Config | `endpoint` root URL, required `db` | | Supported cmds | query, labels, label-values, series | ## Supported Commands GreptimeDB supports these metric commands: ``` obz metric query # Run an instant or range PromQL query obz metric labels # List all known label names obz metric label-values # List values for a given label (requires --match) obz metric series # List matching time series ``` `obz metric info` is not declared as supported because GreptimeDB does not currently expose the Prometheus metadata endpoint used by that command. `obz metric list` is also not declared as supported. Local E2E against GreptimeDB v1.0.1 showed `/label/__name__/values` can return an empty list, and GreptimeDB documentation does not guarantee reliable metric-list semantics. Use `obz metric series --match ...` or query known metric names instead. ## Quick Start ```bash # Instant query obz metric query -p greptimedb --endpoint http://localhost:4000 -q 'up' # Range query (last hour, auto step) obz metric query -p greptimedb --endpoint http://localhost:4000 \ -q 'rate(http_requests_total[5m])' --from now-1h # List label names obz metric labels -p greptimedb --endpoint http://localhost:4000 # Get label values. GreptimeDB requires an explicit series selector. obz metric label-values -p greptimedb --endpoint http://localhost:4000 job \ --match 'up' # Discover matching series when you know a selector. obz metric series -p greptimedb --endpoint http://localhost:4000 \ --match '{__name__="up"}' ``` ## Authentication GreptimeDB supports bearer token auth, basic auth (username + password), or no auth. Configure credentials in `~/.config/obz/config.yaml`: ```yaml providers: greptime-prod: provider: greptimedb endpoint: http://localhost:4000 db: metrics auth: username: ${env:GREPTIME_USER} password: ${env:GREPTIME_PASS} ``` For token-based deployments: ```yaml providers: greptime-cloud: provider: greptimedb endpoint: https://greptime.example.com db: public auth: token: ${env:GREPTIME_TOKEN} ``` Then query with just `-p`: ```bash obz metric query -p greptime-prod -q 'up' ``` For unauthenticated local development instances: ```yaml providers: greptime-local: provider: greptimedb endpoint: http://localhost:4000 db: public ``` ## API Endpoints GreptimeDB exposes a Prometheus-compatible HTTP API under `/v1/prometheus`. Configure `endpoint` as the root HTTP(S) URL only. It must not include any path, query string, or fragment; obz appends the API path and injects the `db` query parameter automatically. Valid: ```yaml endpoint: http://localhost:4000 db: metrics ``` Invalid: ```yaml endpoint: http://localhost:4000?db=metrics endpoint: http://localhost:4000/dashboard endpoint: http://localhost:4000/v1/prometheus endpoint: http://localhost:4000/api/v1 ``` obz routes supported commands to these paths: | Command | Endpoint | |-----------------------|---------------------------------------------------| | `metric query` (instant) | `GET /v1/prometheus/api/v1/query` | | `metric query` (range) | `GET /v1/prometheus/api/v1/query_range` | | `metric labels` | `GET /v1/prometheus/api/v1/labels` | | `metric label-values` | `GET /v1/prometheus/api/v1/label/{name}/values` | | `metric series` | `GET /v1/prometheus/api/v1/series` | | `provider check` | `GET /v1/health` | ## Database Selection GreptimeDB routes Prometheus API requests by the `db` query parameter. obz requires `db` in the provider config and injects it into every GreptimeDB Prometheus API request. Use `db: public` when targeting GreptimeDB's standard public database: ```yaml providers: greptime-prod: provider: greptimedb endpoint: http://localhost:4000 db: metrics ``` ## PromQL Guide GreptimeDB supports standard PromQL. Common patterns: ```promql # Current value of a gauge node_memory_MemAvailable_bytes # Per-second rate over 5 minutes rate(http_requests_total[5m]) # Aggregation sum by (job) (up) # Histogram quantile histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m])) ``` ## Provider Check Verify connectivity: ```yaml providers: greptimedb: provider: greptimedb endpoint: http://localhost:4000 db: public ``` ```bash obz provider check greptimedb ``` This issues a `GET /v1/health` request to confirm the GreptimeDB instance is reachable.
GitHub에서 보기