Practices
Incident Management and On-call Alerting Design
How to design alerts that page the right person for the right reason, and how each observability pillar earns its place during an incident.
Last updated
Good observability data doesn’t automatically produce good incident response — it has to be wired into an alerting system that decides who gets paged, when, and why, and into an on-call process that can actually act on what fires. Poor alert design is one of the most common ways teams undermine an otherwise solid observability stack: too many low-value alerts train responders to ignore pages, while too few or badly targeted ones mean real incidents go unnoticed until users complain. Alerting design and on-call structure are as much a part of “doing observability well” as the underlying metrics, traces, and logs.
The foundational principle, popularized by Google’s SRE practice, is to alert on symptoms rather than causes wherever possible. A symptom is what the user experiences — elevated error rate, high latency, a service returning failures. A cause is an internal condition that might lead to a symptom — high CPU utilization, a full connection pool, a slow dependency. Symptom-based alerts stay meaningful even when the underlying failure mode is one nobody anticipated, while cause-based alerts require predicting every way a system can break, and tend to fire even when the cause never actually affects users.
Why it matters
- Alert fatigue is a direct threat to incident response. Every alert that fires without requiring action erodes trust in the alerting system; responders start delaying or dismissing pages, which means the alert that does matter eventually gets missed too.
- Cause-based alerts multiply faster than symptom-based ones. There are far more ways for internal state to look “wrong” than there are ways for user-facing behavior to actually degrade, so a system that pages on every questionable internal metric generates far more noise than one that pages on user impact.
- Different pillars answer different questions during an incident, and knowing which one to reach for first shortens time to resolution. Metrics tell you something is wrong and roughly what and when (via dashboards and alert firing); traces tell you where in a distributed request path the problem is; logs tell you the specific error or exception; profiling tells you why a particular process is slow or consuming excess resources. Reaching for the wrong pillar first wastes minutes that matter during an active incident.
- On-call structure determines whether an alert reaches someone who can act on it. A well-designed alert that pages a rotation with no runbook, unclear ownership, or no escalation path still fails to produce a fast resolution.
How to approach it
- Make every page actionable and specific. If a responder can’t do anything meaningful in response to an alert, it shouldn’t page — route it to a dashboard, ticket, or lower-urgency channel instead. Attach a runbook link or clear next step to every paging alert.
- Alert on user-facing symptoms for paging; reserve cause-based alerts for narrow, high-confidence cases. Use cause-based alerts sparingly and only when they predict imminent, near-certain user impact — disk about to fill, certificate about to expire — rather than as a general-purpose early-warning system.
- Use SLO burn rate as a primary paging signal. A multi-window burn-rate alert (a fast-burn window to catch severe incidents quickly, paired with a slower confirming window to avoid paging on brief blips) tends to produce fewer false positives than static thresholds on raw error counts.
- Design on-call rotations with realistic load and clear escalation. A rotation that consistently pages more than a sustainable amount per shift is a signal that either the system needs fixing or the alerts need tuning — treat repeated pages for the same underlying issue as a bug in the alerting configuration, not a fact of life.
- Route each pillar to the right stage of the incident. Point responders toward metrics and dashboards for detection and triage, traces for localizing the failure in a distributed system, and logs for root-causing the specific error, so the investigation follows a predictable path instead of an ad hoc search across tools.
Good alerting design turns metrics, traces, and logs into an actual response process rather than a pile of dashboards nobody looks at until something is already broken.
Related tools
The CNCF-graduated metrics collection and alerting system built around a pull model and its own query language, PromQL.
The open-source dashboarding and visualization platform that has become the default front end for metrics, logs, traces, and profiles alike.
A unified commercial observability platform covering infrastructure metrics, APM/distributed tracing, log management, and continuous profiling.
A managed, all-in-one observability platform combining metrics, traces, logs, and AI-driven analysis under a single usage-based pricing model.