agentsclimarketplace

Prometheus

Skill bg-szy/TOP-SKILLS/skills/claude-code-skills/prometheus

全球最大的 Claude Code 技能聚合库 · 收录 3900+ 来自 12+ 来源的技能,提供在线搜索与趋势分析看板 / The world's largest Claude Code skill aggregation hub — 3900+ skills from 12+ sources with online search and trend dashboard

Install
npx -y skills add bg-szy/TOP-SKILLS --skill prometheus

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

4.9 KB, as published. Nobody here has run it

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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.