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.

Datos de origen

Repositorio
alibaba/obz-cli
Última actividad en el origen
13 de mayo de 2026 a las 12:12
Idioma detectado de SKILL.md
inglés
Estrellas
28
Forks
9

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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.
Ver en GitHub