Independent by design · no pay-to-rank placements  · How we evaluate tools →
Anclum Submit
G

GillMacedo/seriesdiff

Prometheus metrics diff for pull requests

Before you install: no copy-paste command · license MIT · link reachable

First step: nothing runnable here yet - start from the repository: https://github.com/GillMacedo/seriesdiff

View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Official descriptionPrometheus metrics diff for pull requests. A Claude Code skill and Go CLI that compares /metrics scrapes from the base branch and your change, and lists removed or renamed metrics, type changes, removed labels, bucket changes, ID-like label values and series growth, with the alert rules and dashboar
Star count
0 ★ · GillMacedo/seriesdiff · read from the GitHub search API · (checked 2026-11-13 20:00:50)
Source
read directly from its GitHub page · type: open-source project
Harvest history
first seen 2026-11-03 · last seen 2026-11-14 · seen 12× · listed by 1 sources
Score
score 103 · 1 sources · repo
FAQ (answers come from our records)
Who is it for?
We filed it under these tags: 开源项目. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository GillMacedo/seriesdiff;first catalogued 2026-11-03;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.

# seriesdiff: Prometheus metrics diff for pull requests

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

A Claude Code skill and Go CLI for backend developers and SREs who change instrumented code and want to know, before merging, whether the change breaks Prometheus alerts and Grafana dashboards or blows up metric cardinality. It compares two /metrics scrapes, one from the base branch and one from your change, and lists removed or renamed metrics, type changes, removed labels, changed histogram buckets, label values that look like IDs, lost series and series growth. With --refs it names the alert rules and dashboard lines that use each changed metric.
Renaming a metric, dropping a label or switching a route label from the template to the raw path usually pass code review and CI, because tests rarely check metric names and labels. The first sign is an alert that silently stops firing or a Prometheus server running out of memory. seriesdiff reads the scrape files, so it works with any exporter or client library, and it refuses an empty, garbled or cut-off scrape instead of calling it clean.
## What you can ask Claude
"Does my branch rename or remove any Prometheus metrics our alerts use?"
"Will this change add high-cardinality labels to our metrics?"
"Compare /metrics from main and from my branch and tell me what breaks."
"We upgraded nodeexporter. Which of our dashboards will lose data?"
## Install
As a Claude Code plugin:
claude plugin marketplace add GillMacedo/seriesdiff
claude plugin install seriesdiff@seriesdiff-marketplace
Or as a CLI with Go 1.22 or newer. It has no dependencies:
go run github.com/GillMacedo/seriesdiff/plugin/scripts@latest compare base.prom head.prom
## Example
examples/orders holds three versions of a small made-up HTTP service instrumented with the real clientgolang library. after makes typical pull request mistakes: it labels requests with the raw path instead of the route template, changes the latency buckets, drops the reason label from payment errors, renames a gauge, and turns a counter into a gauge. scripts/scrape-examples.sh builds each version, sends the same requests, and saves /metrics. examples/monitoring holds alert rules and a dashboard written against the before metrics. From a clone of this repo:
$ go run ./plugin/scripts compare --refs examples/monitoring examples/scrapes/orders-before.prom examples/scrapes/orders-after.prom
1 removed metric, 1 type change, 1 removed label, 1 bucket change, 2 labels with ID-like values, 2 metrics that lost series, 2 new metrics
Series: 114 -> 114. Metrics: 45 -> 46.
Removed metrics (queries, alerts and dashboards using them get no data):
orderqueuedepth gauge, 1 series
probably renamed to ordersqueuedepth
used in examples/monitoring/alerts.yml:11, examples/monitoring/dashboards/orders.json:22
Type changed (rate() and histogramquantile() depend on the type):
cacheentries counter -> gauge
used in examples/monitoring/dashboards/orders.json:17
Removed labels (by() and label matchers using them stop matching):
paymenterrorstotal label reason, which had 2 values
used in examples/monitoring/alerts.yml:14, examples/monitoring/dashboards/orders.json:12
Histogram buckets changed (quantiles across the change and le= matchers are affected):
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[![Listed on Anclum](https://anclum.com/badge/listed.svg)](https://anclum.com/en/s/gillmacedo-seriesdiff/)
Source
github · https://github.com/GillMacedo/seriesdiff
Browse by field
Open source
added
today

More like this

All 1,671 →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index