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

Linux

Fast path from a Linux workstation with local or port-forwarded access to Prometheus.

curljqkubectl optional
Temporary port-forward when Prometheus runs in Kubernetes
kubectl -n monitoring port-forward svc/prometheus 9090:9090
TSDB status and labels with the most values
curl -s http://127.0.0.1:9090/api/v1/status/tsdb | jq '.data | {headSeries: .headStats.numSeries, labelValueCountByLabelName: .labelValueCountByLabelName[:10], seriesCountByMetricName: .seriesCountByMetricName[:10]}'
New series by job over the last 5 minutes
curl -G -s http://127.0.0.1:9090/api/v1/query --data-urlencode 'query=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.