← all writeups
Page on symptoms, not causes
We cut 310 alert rules to 38. On-call got quieter and we didn't miss a single real incident.
- Date
- 2025-04-16
- Type
- note
PLACEHOLDER POST — seed data. Replace with your real writeup.
In one quarter the on-call rotation got 1,400 pages. Seven of them were real incidents, and people had learned to ignore the rest.
The rule we adopted
A page must mean a user is being hurt right now, and a human needs to act. Everything else goes to a ticket or a dashboard.
CPU > 80%: a cause, not a pagedisk will fill in 4h: a ticket, unless it’s less than 30 minutes awaycheckout error budget burning 14x: page
How we got from 310 to 38
- Exported every rule with how often it fired and whether anyone acted on it
- Deleted every rule that fired more than 10 times with no action taken
- Replaced per-host rules with per-service SLO burn-rate alerts
# multi-window burn rate: fast enough to catch outages, slow enough to ignore blips
expr: |
(job:slo_errors:ratio_rate1h > 14.4 * 0.001)
and
(job:slo_errors:ratio_rate5m > 14.4 * 0.001)
The alerts we deleted weren’t wrong. They were answering questions nobody was asking at 3am.
← all writeups