How do you design an effective alerting system?
An effective alerting system maximises signal and minimises noise—every alert that fires should require a human response, and every condition requiring a human response should fire an alert. Achieving this balance is harder than it appears.
**Alert on symptoms, not causes**: Alert on user-visible impact (error rate, latency, availability) rather than internal resource metrics (CPU, disk usage). A CPU alert at 80% may never affect users; a 2% error rate always does. This maps alerts directly to SLOs and reduces false positives.
**SLO-based burn rate alerting**: Google's SRE model defines alerts in terms of error budget consumption. A fast burn rate alert fires when the error budget is being consumed at a rate that will exhaust it within 1 hour (high severity, page on-call). A slow burn rate alert fires when the budget will exhaust in 3 days (lower severity, ticket). This approach captures both sudden outages and slow degradations that symptom-threshold alerts miss.
**Severity tiers**: Define clear severity levels with expected response times. P1: system down, data loss risk—wake someone up. P2: degraded performance affecting users—respond within 15 minutes. P3: anomaly worth investigating—handle during business hours. Consistency in severity definitions prevents alert fatigue and sets clear on-call expectations.
**Alert routing and escalation**: Route alerts to the right team based on service ownership (PagerDuty, OpsGenie). Define escalation paths: if the primary on-call doesn't acknowledge within N minutes, escalate to the secondary. For P1s, auto-escalate to the incident commander.
**Reducing alert fatigue**: Deduplicate related alerts—a single infrastructure failure should not generate 50 application alerts. Use alert grouping and inhibition rules (Alertmanager). Set alert resolution auto-close to avoid stale firing alerts cluttering dashboards.
**Runbooks**: Every alert should link to a runbook with: what this alert means, probable causes, diagnostic steps, and remediation actions. Alerts without runbooks transfer cognitive load to the on-call engineer at 3am.
**Alert hygiene reviews**: Regularly audit firing alerts. If an alert fires frequently but requires no action, either fix the underlying issue or raise the threshold. Alerts that don't drive action are noise that erodes trust in the system.
Covers symptom-based alerting, severity tiers with routing, and alert fatigue reduction with runbooks.
Covers all of the above plus SLO burn rate alerting, deduplication/inhibition, escalation paths, and alert hygiene review process.
Reading the answer is step one. Explaining it unprompted — under interview pressure — is what actually matters. Get AI-graded feedback on your answer with follow-up probes on your weak points.
Get Graded — Free Assessment