Prometheus Config Linter
Lint Prometheus alert rules, recording rules, and scrape configs against best practices. Catches missing for: clauses, missing severity labels, naming convention violations, and more — before they reach production.
Paste your Prometheus rule file or scrape config
Paste your YAML above and click Lint Config.
Findings will be listed here grouped by severity. The linter checks alert rules, recording rules, and scrape configs against common Prometheus best practices.
Automate your incident response
Reduce MTTR by 90% with AI-powered root cause analysis. Free to start.
The four mistakes that account for most alerting pain
We have audited a lot of Prometheus rule files. The same handful of mistakes show up over and over, and each one produces real on-call pain.
- No
for:clause — alert fires on a single bad evaluation, which means flap. The fix is one line:for: 5m. Burn-rate alerts can usefor: 2mbecause the burn rate math already filters blips. - No
severitylabel — alertmanager has nothing to route on, so you either silence everything or page on everything. Addlabels: { severity: page }orlabels: { severity: ticket }. - No
summary/descriptionannotations — alert lands in PagerDuty as the rule name only. Responder has no idea what is wrong without opening the dashboard. Both annotations should template in actual values from the metric (use{{ $value }}). - No
runbook_urlannotation — responder is alone with their thoughts at 3 AM. Generate a runbook with the Runbook Generator tool and link it here.
Recording rule naming pays for itself
The Prometheus community standardized on <level>:<metric>:<operation> because anonymous recording rule names produce a debugging nightmare six months later. Following the convention is free, makes recording rules instantly self-documenting, and makes them visually distinct from raw metrics in PromQL queries.
From linting to live monitoring
Static linting catches design mistakes before they ship. But alerting hygiene degrades over time as rules accumulate, services churn, and thresholds drift. Uptimes.ai monitors your alerts continuously, flags rules that fire often without resolution (likely noise), detects correlated alerts that should be deduplicated, and surfaces coverage gaps where signals are missing entirely. Use this linter to catch the obvious problems; use Uptimes for the rest.