Alert routing: by tag, by service, by severity
Owner Sarah Ofori · Last updated 2026-03-29 · v3.6
routingalertstagsseverityrules
Alert routing
A routing rule decides which channel an alert goes to, based on the alert's tags + severity.
the rule shape
yaml
routing_rules:
- name: payments-criticals-to-pd
when:
tags:
team: payments
env: prod
severity_min: critical
then:
channels: [pagerduty:payments-oncall]
stop: true
- name: payments-warnings-to-slack
when:
tags:
team: payments
severity_min: warning
then:
channels: [slack:#payments-alerts]Rules evaluate top-to-bottom. stop: true short-circuits — useful when criticals should not also fire on the warning channel.
defaults
If no rule matches, the monitor's own alert_channels list is used. Rules are layered on top of monitor-level channels, not a replacement.
examples
Per-team Slack channel, single PagerDuty for all criticals:
yaml
- when: { tags: { team: payments } }
then: { channels: [slack:#payments] }
- when: { tags: { team: platform } }
then: { channels: [slack:#platform] }
- when: { severity_min: critical }
then: { channels: [pagerduty:eng-oncall] }Different SLO burn destinations:
yaml
- when: { tags: { slo_kind: fast-burn } }
then: { channels: [pagerduty:eng-oncall] }
- when: { tags: { slo_kind: slow-burn } }
then: { channels: [slack:#eng-oncall] }You can attach slo_kind (or any tag) inside slo-multi-window-alerting rules.
maintenance windows
A scheduled maintenance window suppresses alerts that match its tag selector. See notification-throttling for the full mute/dedup behaviour.