Back to guidesGuide

Reduce Prometheus cardinality spikes without blinding your alerts

How to find explosive labels, normalize routes, and shrink active series without breaking critical dashboards or rules

A practical guide to spotting when Prometheus is swelling because of unstable labels, cutting cardinality in the right layer, and validating that your alerts still cover the real incident.

Created: April 30, 2026

Published: April 30, 2026

Estimated time40 min
LevelAdvanced
Before you startRead access to Prometheus or its HTTP endpoint
PlatformsLinux / Docker
WhatsAppXLinkedIn

Docker

The same analysis when Prometheus lives in docker-compose or a local container.

docker or docker composecurljq
Find the published Prometheus port
docker compose port prometheus 9090
Inspect head series and the heaviest metric families
curl -s http://127.0.0.1:9090/api/v1/status/tsdb | jq '.data | {headSeries: .headStats.numSeries, seriesCountByMetricName: .seriesCountByMetricName[:15]}'
Measure growth in newly added series
curl -G -s http://127.0.0.1:9090/api/v1/query --data-urlencode 'query=topk(10, sum by (job) (rate(scrape_series_added[5m])))' | jq '.data.result'

Content locked

This guide requires both steps before full content is available.

  • Click “Like” on this guide.
  • Share on WhatsApp, X, LinkedIn, or copy the link.

Access is automatically unlocked as soon as both steps are completed.

Reduce Prometheus cardinality without breaking alerts | Observability Guides