All Rules
The Prometheus lexicon provides 36 rules: 3 lint rules and 33 post-synth checks.
Lint Rules
Section titled “Lint Rules”| ID | Severity | Category | Description |
|---|---|---|---|
PROM001 | error | security | a credential written as a literal in a Receiver or |
PROM002 | error | correctness | a rule’s expr, written as a string literal inside a |
PROM003 | error | correctness | an Slo whose literal objective, window or SLI expression can |
Post-Synth Checks
Section titled “Post-Synth Checks”Post-synth checks validate the serialized output after the build pipeline completes.
| ID | Description |
|---|---|
PROM101 | Two rule groups in one rule file share a name |
PROM102 | Two rules share a name and label set |
PROM103 | A rule or group duration is not a Prometheus duration |
PROM104 | A rule expression is not valid PromQL |
PROM105 | A rule or group is malformed |
PROM106 | An alerting rule has no severity label |
PROM107 | An alerting rule has no summary or description annotation |
PROM201 | A route sends to a receiver that is not declared |
PROM202 | An alert severity is not routed by any route |
PROM203 | Two receivers or two time intervals share a name |
PROM204 | A route names a time interval that is not declared |
PROM205 | The root route is missing, has no receiver, or has matchers |
PROM206 | A route or inhibit rule matcher does not parse |
PROM207 | A receiver is declared but no route sends to it |
PROM208 | An Alertmanager duration is not a duration |
PROM209 | A receiver integration is missing its destination or credential |
PROM210 | A receiver integration or global setting is one Alertmanager rejects |
PROM211 | An alerting rule has no for, or for: 0s |
PROM212 | An alerting rule has no runbook_url annotation (opt-in) |
PROM213 | An alert expression has no comparison |
PROM214 | An alert template reads a label the expression aggregates away |
PROM215 | rate, irate or increase over a name that is not a counter’s |
PROM216 | histogram_quantile over a series without _bucket, or without le |
PROM217 | A recording rule name is not in level:metric:operations form |
PROM218 | A regex matcher needs no regex, or is anchored |
PROM219 | An alerting rule sets the alertname label |
PROM220 | A receiver turns off TLS certificate verification |
PROM221 | SMTP credentials sent with require_tls false |
PROM222 | Credentials sent to an http:// receiver URL |
PROM223 | repeat_interval is shorter than group_interval |
PROM224 | An inhibit rule matches one alert as source and target, with no equal |
PROM225 | A labeldrop or labelkeep relabel step carries a field it does not take |
PROM301 | A rule reads a connector metric no collector in the build emits |