Configure inhibition rules
Note
Available in Grafana 13 or higher.
An inhibition rule suppresses notifications for target alerts when source alerts with matching label values are already firing. This lets you reduce noise when a root-cause alert makes dependent alerts redundant.
For example, if a node is down (the source), you can inhibit all alerts for services running on that node (the target). This prevents your team from receiving individual alerts for each affected service when the underlying cause is already captured in the source alert.
Note
Inhibition rules are assigned to a specific Alertmanager and only suppress notifications for alerts managed by that Alertmanager.
Inhibition rules vs silences
Both inhibition rules and silences suppress alert notifications. The key difference is that inhibition rules suppress alerts automatically based on the presence of another alert, while silences suppress alerts for a fixed time window regardless of other alerts.
Manage inhibition rules
You can manage inhibition rules by using the Grafana App Platform API. There is no dedicated UI for creating or editing inhibition rules.
The API resource is:
- Group:
notifications.alerting.grafana.app - Version:
v0alpha1 - Resource:
inhibitionrules
Caution
The inhibition rules API is currently in alpha (
v0alpha1) and is subject to change.
Inhibition rules are also supported in the Prometheus Alertmanager. Refer to Configure Alertmanager to set up an external Alertmanager.
Inhibition rule schema
Each inhibition rule has the following fields:
Matcher format
Both source_matchers and target_matchers are lists of structured matcher objects. Each matcher has:
The equal field
When equal is specified, the inhibition only applies when the source and target alerts have the same value for each listed label. For example, setting equal: [cluster] ensures that an alert in one cluster only inhibits alerts in the same cluster.
If equal is omitted, any firing source alert matching source_matchers inhibits all matching target alerts regardless of their label values.
Missing labels and empty-value labels are treated as equivalent for the purpose of equal matching.
Example: suppress warning alerts
The following example defines an inhibition rule that suppresses all warning-severity alerts in a cluster when a critical-severity alert is already firing for the same cluster.
{
"name": "critical-inhibits-warnings",
"source_matchers": [{ "label": "severity", "type": "=", "value": "critical" }],
"target_matchers": [{ "label": "severity", "type": "=", "value": "warning" }],
"equal": ["cluster", "namespace"]
}In this example:
- The source matcher selects
criticalalerts. When one fires, the rule becomes active. - The target matcher selects
warningalerts. The rule suppresses these while the source alert fires. - The
equalfield ensures suppression only applies when source and target share the sameclusterandnamespacelabel values.



