Site reliability engineering · Production operations
How to replace noisy alerts with actionable SLO monitoring
Improve detection without simply moving an uncomfortable signal out of the pager. Tie each page to a user outcome, an operating action, and the team that can take it.
1. Audit the action behind each page
Collect recent firings, affected services, incident links, responder actions, and duplicate notifications. A CPU threshold that consistently predicts a saturation failure may be useful; one that fires during harmless batch work may belong in a capacity queue. Historical noncorrelation alone does not prove a signal is safe to discard.
For each alert, write the decision it enables, the latest useful intervention time, the authorized operator, and what happens when that operator does not acknowledge. Group notifications around a shared failure when appropriate, but preserve distinct ownership when one dependency affects independently operated products. Deduplication must not make the only affected tenant invisible.
2. Define the journey before choosing an expression
Agree eligible events and good outcomes with the service and product owners. An HTTP 200 missing a mandatory order confirmation is bad. Excluding rejected eligible requests merely because they failed early can improve a graph while users still fail. Declare the measurement boundary: application counters cannot observe every request dropped before the application.
For a request-based 99.9% success objective, the allowed bad fraction is 0.001. Burn rate is the observed bad fraction divided by 0.001. An 8% bad fraction is 80× burn. Do not translate that request budget into downtime minutes without a traffic assumption, and do not average pod-level latency percentiles into a fleet percentile.
Product owns the importance and permitted behavior of the journey; engineering owns defensible measurement. If different product owners demand conflicting success definitions, carry the disagreement to the accountable service or portfolio owner rather than changing the query until everybody’s dashboard is green.
3. Combine burn windows and test low-volume behavior
The following fast-burn condition is illustrative. It assumes recording rules already calculate one ratio per identical service/region/journey cohort. These names are custom instrumentation, not Kubernetes metrics. A slower-burn policy is also needed; this condition alone is not a complete paging design.
(sli:journey_bad_ratio:1h > 14.4 * 0.001)
and on (service, region, journey)
(sli:journey_bad_ratio:5m > 14.4 * 0.001)
The long window establishes significance; the short window asks whether the problem remains active. Select thresholds and minimum event counts using the service’s traffic and response time. A minimum-volume guard may delay detection for a valuable low-volume tenant; use a separate synthetic or business-event deadline where that risk matters.
Do not coerce absent series to zero and call the service healthy. Distinguish no traffic, telemetry collection failure, and observed success. Keep an independent heartbeat or probe for the measurement pipeline, including notification delivery. Excessively detailed labels can overload the monitoring system; keep customer identifiers and unbounded request IDs out of metric labels.
4. Shadow the replacement through organizational constraints
Replay known incidents and test failures in an approved environment, then run the new alert alongside the existing one without duplicating pages. Record detection delay and useful actions. If InfoSec restricts raw telemetry, ask for approved aggregates or redacted traces with sufficient cohort detail, and record what the approved view cannot establish.
If the receiving team is unreachable, preserve the existing working route while escalating alert ownership to its manager. Never route an unowned page to a general channel and declare migration complete. A product team requesting lower alert volume should review detection consequences and staffing options, not simply approve indefinite silencing.
Illustrative scenario: ingress success looks healthy while on-premises uploads fail over a backup VPN. Keep the ingress SLI, add an authorized large-payload check from the affected origin, and involve the network owner. Replacing CPU alerts alone cannot repair a missing network observation point.
5. Separate permanent coverage from temporary incident watches
Give a temporary alert an incident or problem ID, owner, intended action, review date, and explicit exit test. Before removing it, prove the permanent replacement detects the original mechanism, reaches the operator, and recovers or clears correctly. Review dates trigger an ownership decision; they must not silently expire the last protection while the fix is delayed.
Remove obsolete routing, dashboards used only for the response, and expensive duplicate queries after the transition. Retain the rule revision and incident evidence according to policy. Time-limited maintenance silences should expire automatically; a coverage retirement requires evidence and an acknowledged handover.
Carry the work through the incident lifecycle
Recovery, investigation, instrumentation, and implementation can overlap. Keep service recovery and the underlying problem’s verification as separate states; reopen incident coordination if customer harm returns.
| Stage | Required work and closure evidence |
|---|---|
| Incident | Keep an owned fallback route and validate current user impact while investigating noisy or absent pages. |
| Remediation | Reduce duplicate notifications through bounded grouping or silences without disabling the only failure signal. |
| RCA | Explain whether noise, ownership, telemetry loss, or the success definition delayed detection. |
| Early warning | Add tested multiwindow burn detection, low-volume coverage, and telemetry-pipeline health. |
| Fixes in progress | Retain the temporary watch with a review date while measurement or routing changes await approval. |
| Tracking and verification | Link rule commits, replay results, delivery tests, and receiving-team acknowledgment to the problem record. |
| Retiring temporary alerts | Remove the temporary rule only after replacement coverage and operator response are demonstrated; keep the journey SLO alert. |
Technical references
Use the documentation for your deployed version and actual topology. Scenarios are illustrative; proposed checks and thresholds require an approved exercise plan.