prometheus

v2026.09.24

Query and interact with Prometheus HTTP API for monitoring data. Use when Claude needs to query Prometheus metrics, execute PromQL queries, retrieve targets/alerts/rules status, access metadata about series/labels, manage TSDB operations, or troubleshoot monitoring infrastructure. Supports instant queries, range queries, metadata endpoints, admin APIs, and alerting information.

GitHub
Install command
npx skhub add julianobarbosa/prometheus
Markdown
SKILL.md

Prometheus API Skill

Query Prometheus monitoring systems via HTTP API at /api/v1.

Quick Reference

Instant Query

curl 'http://<prometheus>:9090/api/v1/query?query=<promql>&time=<timestamp>'

Range Query

curl 'http://<prometheus>:9090/api/v1/query_range?query=<promql>&start=<ts>&end=<ts>&step=<duration>'

Response Format

All responses return JSON:

{
  "status": "success" | "error",
  "data": <result>,
  "errorType": "<string>",
  "error": "<string>",
  "warnings": ["<string>"]
}

HTTP codes: 400 (bad params), 422 (expression error), 503 (timeout).

Query Endpoints

EndpointPurposeKey Parameters
/api/v1/queryInstant queryquery, time, timeout, limit
/api/v1/query_rangeRange queryquery, start, end, step, timeout, limit
/api/v1/format_queryFormat PromQLquery
/api/v1/seriesFind series by labelsmatch[], start, end, limit
/api/v1/labelsList label namesstart, end, match[], limit
/api/v1/label/<name>/valuesLabel valuesstart, end, match[], limit
/api/v1/query_exemplarsQuery exemplarsquery, start, end

Metadata & Status Endpoints

EndpointPurpose
/api/v1/targetsTarget discovery status (state=active|dropped|any)
/api/v1/targets/metadataMetric metadata from targets
/api/v1/metadataAll metric metadata
/api/v1/rulesAlerting/recording rules
/api/v1/alertsActive alerts
/api/v1/alertmanagersAlertmanager discovery
/api/v1/status/configCurrent config YAML
/api/v1/status/flagsCLI flags
/api/v1/status/runtimeinfoRuntime info
/api/v1/status/buildinfoBuild info
/api/v1/status/tsdbTSDB cardinality stats
/api/v1/status/walreplayWAL replay progress

Admin Endpoints (require --web.enable-admin-api)

EndpointMethodPurpose
/api/v1/admin/tsdb/snapshotPOSTCreate TSDB snapshot
/api/v1/admin/tsdb/delete_seriesPOSTDelete series (match[], start, end)
/api/v1/admin/tsdb/clean_tombstonesPOSTClean deleted data

Common PromQL Patterns

# Rate of counter over 5m
rate(http_requests_total[5m])

# Sum by label
sum by (job) (rate(http_requests_total[5m]))

# Percentile from histogram
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))

# Filter by label
up{job="prometheus", instance=~".*:9090"}

# Increase over time
increase(http_requests_total[1h])

# Average over time range
avg_over_time(process_cpu_seconds_total[5m])

Result Types

  • vector: [{"metric": {...}, "value": [timestamp, "value"]}]
  • matrix: [{"metric": {...}, "values": [[ts, "val"], ...]}]
  • scalar: [timestamp, "value"]
  • string: [timestamp, "string"]

Scripts

Query script: scripts/prom_query.py

# Instant query
python scripts/prom_query.py http://localhost:9090 'up'

# Range query
python scripts/prom_query.py http://localhost:9090 'rate(http_requests_total[5m])' \
  --start '2024-01-01T00:00:00Z' --end '2024-01-01T01:00:00Z' --step '1m'

# Output: table, json, csv
python scripts/prom_query.py http://localhost:9090 'up' --format table

Health check: scripts/prom_health.py

python scripts/prom_health.py http://localhost:9090

Detailed Reference

For complete API documentation: references/api_reference.md

For PromQL functions: references/promql_functions.md


Gotchas

  • rate() over a counter that resets too often: math is correct but meaningless — use increase() and divide by interval explicitly when counters don't survive scrapes.
  • up{} per-target gauge: a flaky target shows up=0 but doesn't trigger alerts unless for is met. Set short for for liveness, long for noise.
  • Recording rules evaluate at fixed interval; missed evaluations don't backfill — gaps in the recording series during incidents.
  • Federation match[] parameter requires ALL matchers to match — an empty matcher returns no series, which looks like a working query with no data.
  • Stale-marker semantics: a series stops being scraped → stale marker after 5 min by default → queries see "no data" not "0". Affects alerts on absent().
  • Service Discovery + relabel_config: a bad regex in keep action silently drops all targets — verify with /api/v1/targets after each config change.
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/prometheus

Default branch

main

Latest commit

515755d

Tree SHA

fca30ca