Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
julianobarbosa avatar

Prometheus

  • 48 installs
  • 6 repo stars
  • Updated July 22, 2026
  • julianobarbosa/claude-code-skills

Query Prometheus metrics and create PromQL alerts for system monitoring

About

Provides HTTP API access for querying Prometheus metrics and PromQL expressions. Used when you need to extract monitoring data, create dashboards, or trigger alerts based on metrics.

  • PromQL query construction and execution
  • HTTP API integration for metric retrieval

Prometheus by the numbers

  • 48 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #743 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/julianobarbosa/claude-code-skills --skill prometheus

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs48
repo stars6
Last updatedJuly 22, 2026
Repositoryjulianobarbosa/claude-code-skills

What it does

Query Prometheus metrics and create PromQL alerts for system monitoring

Files

SKILL.mdMarkdownGitHub ↗

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\
/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.

Related skills

DevOps & CI/CDmonitoring

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.