1. Paste a /metrics scrape
2. What it found
Biggest single-label drops
| Metric | Drop label | Series removed |
|---|
Findings
| Rule | Level | Metric | Detail |
|---|
Estimated monthly cost
| Plan (illustrative list price) | Billable series | Per month |
|---|
Prefer a CLI, or want a series budget in CI?
Same logic, zero dependencies, one command — reads a file or stdin:
curl -s localhost:9100/metrics | node cli.mjs analyze - node cli.mjs analyze metrics.txt --targets 40 node cli.mjs analyze metrics.txt --targets 40 --max-series 50000 # exit 1 over budget node cli.mjs analyze metrics.txt --json node cli.mjs analyze metrics.txt --prices my-prices.json # your negotiated prices
Get cli.mjs and engine.mjs — Node 18+, nothing to install, no network call. More: why metrics bills explode and which labels to drop.
What's recognised
| Input | Handling |
|---|
List prices in the built-in table are illustrative and dated; edit them with --prices or the CLI JSON file. Hosted vendors count series in their own ways, so use your plan's rules for the final number.
Common questions
Does this read my Prometheus server or my bill?
No. It reads the text you paste, which is one scrape of one target. It cannot see how many targets you run, how labels churn over days, or your negotiated price. Every dollar figure is that series count times a target count and prices you type, so treat it as a way to compare options, never a measurement of what you are charged.
What is a series, and why does a label multiply it?
Every distinct combination of a metric name and its label values is one time series, and hosted plans bill by active series. A metric with a path label that takes 5,000 values and a method label that takes 4 can be 20,000 series. Drop or bucket the label and the multiplier goes away.
How is the saving from dropping a label calculated?
Exactly, from the scrape you pasted: the tool removes that label from every series of the metric and counts how many distinct series remain. Nothing is guessed. It does not know whether a dashboard or alert still needs that label, so check before relabelling.
Is my metrics output uploaded anywhere?
No. The browser page analyses the text in your own browser and never sends it anywhere. The CLI reads a local file or stdin and makes no network call.