DevFlow
Docs/SLOs and alerting

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.

Related questions

Was this helpful?
Or ask the docs bot for a follow-up — the floating button bottom-right.