Use promtool tsdb analyze and the Prometheus TSDB API to identify and remediate high-cardinality metric labels

domain: prometheus.io · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Query the Prometheus TSDB status API at /api/v1/status/tsdb (with optional limit parameter) to get the top metric names and label names ranked by series count
  2. Focus on seriesCountByLabelPair and labelValueCountByLabelName in the response to find labels with unbounded values (e.g., user_id, request_id, trace_id in label position)
  3. Run promtool tsdb analyze <data-dir> on the Prometheus data directory to get per-block cardinality details including highest-cardinality series and label churn rates
  4. For metrics with high-cardinality labels that belong to your own instrumentation, refactor the application to move high-cardinality values into exemplars or log lines instead of metric labels
  5. Apply metric_relabel_configs in the scrape job to drop or hash offending labels before ingestion: use action: labeldrop or replace with a regex that removes the label
  6. Re-query /api/v1/status/tsdb after a scrape cycle to verify series counts have dropped; optionally run TSDB compaction to reclaim disk space from dropped series

Known gotchas

Related routes

Control metric cardinality by applying metric_relabel_configs to drop or aggregate high-cardinality labels
prometheus.io · 6 steps · unrated
Design Prometheus metrics that don't explode cardinality
prometheus · 4 steps · unrated
Write PromQL recording rules to pre-aggregate high-cardinality metrics and speed up dashboard queries
prometheus.io · 5 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans