/////

SLO Error Budget Burn-Rate Alerting: Multi-Window Policies, Prometheus Rules, and Low-Traffic Failure Modes

SLO error-budget burn-rate alerting is an operational alerting architecture that pages humans when a service is consuming its error budget fast enough to threaten the agreed service level objective. The most reusable pattern is multi-window, multi-burn-rate al

/////

Summary#

SLO error-budget burn-rate alerting is an operational alerting architecture that pages humans when a service is consuming its error budget fast enough to threaten the agreed service level objective. The most reusable pattern is multi-window, multi-burn-rate alerting: combine a long window that proves sustained impact with a short window that confirms the problem is still happening. This reduces both missed serious incidents and noisy alerts from brief spikes.

A practical architecture usually has four layers:

  1. Define SLIs as ratios, such as bad requests / total requests or failed probes / total probes.
  2. Record rolling-window SLI error ratios with Prometheus recording rules.
  3. Convert the SLO target into an error-budget fraction and compare observed error ratio against burn-rate thresholds.
  4. Route alerts by urgency: fast budget burn pages; slower budget erosion creates tickets or backlog work.

This capsule focuses on the architecture, threshold logic, Prometheus-style implementation, and common failure modes such as low traffic, missing data, bad denominator design, seasonality, and alert flapping.

Key Points#

  • Error budget
  • If the SLO target is 99.9%, the allowed error budget is 0.1%.
  • Burn rate measures how many times faster the service is consuming its budget than the steady rate allowed over the compliance window.
  • Example: for a 30-day, 99.9% SLO, a burn rate of 1 means the service is consuming exactly the permitted 0.1% error budget pace. A burn rate of 14.4 means the service would exhaust the 30-day budget about 14.4 times faster.

  • Basic burn-rate threshold

  • Alert threshold can be expressed as:

    observed_error_ratio > burn_rate × error_budget_ratio

  • For a 99.9% SLO:

    • Error budget ratio: 1 - 0.999 = 0.001
    • Burn rate 14.4 threshold: 14.4 × 0.001 = 0.0144, or 1.44% bad events.
  • Multi-window, multi-burn-rate alerting

  • Google’s SRE guidance recommends combining windows so that alerts are both sensitive and stable.
  • A common paging pattern for a 30-day SLO:
    • Fast page: high burn over a 1-hour window, confirmed by a shorter 5-minute window.
    • Slower page: moderate burn over a 6-hour window, confirmed by a 30-minute window.
  • A common ticketing pattern:

    • Lower burn over multi-day or multi-hour windows.
    • Used when the service is slowly eroding budget but does not require immediate wake-up.
  • Why two windows are used

  • Long window alone:
    • Good at detecting sustained budget burn.
    • Bad at alert recovery because it can keep firing long after the incident has stopped.
  • Short window alone:
    • Good at detecting current symptoms.
    • Noisy during short spikes or small-sample anomalies.
  • Combined condition:

    • Page only when the long window shows meaningful budget burn and the short window shows the issue is still active.
  • Prometheus-style implementation shape

  • Recording rules should precompute request totals and error ratios over required windows.
  • Alerting rules compare those ratios to burn-rate thresholds.
  • Example structure:

    yaml - alert: HighErrorBudgetBurn expr: | ( job:slo_errors_per_request:ratio_rate1h > 14.4 * 0.001 and job:slo_errors_per_request:ratio_rate5m > 14.4 * 0.001 ) or ( job:slo_errors_per_request:ratio_rate6h > 6 * 0.001 and job:slo_errors_per_request:ratio_rate30m > 6 * 0.001 ) labels: severity: page annotations: summary: "High SLO error budget burn"

  • The concrete metric names and label aggregation must match the organization’s SLI definition.

  • Alert routing policy

  • Page alerts should represent immediate or near-term threat to the SLO.
  • Ticket alerts should represent slower budget loss requiring investigation, capacity work, dependency follow-up, or product decision-making.
  • Avoid paging for every SLO violation forecast. Page only when action is urgent and actionable.

  • Good SLI design matters more than alert math

  • Burn-rate alerts are only as good as the SLI.
  • For request/response services, the SLI often separates:
    • Availability errors, such as 5xx or failed RPCs.
    • Latency violations, such as requests slower than a defined threshold.
  • The denominator should represent user-relevant eligible events, not internal retries or irrelevant background calls unless those are intentionally part of the user experience.

  • Low-traffic failure modes

  • Ratio-based alerts can produce false positives when the denominator is very small.
  • One failed request out of one request is a 100% error ratio, but may not represent a real incident.
  • Mitigations:

    • Add a minimum traffic/request-count condition.
    • Use synthetic probes for very low-traffic services.
    • Prefer longer windows for sparse services.
    • Route low-confidence signals to tickets instead of pages.
  • Missing-data failure modes

  • No traffic is not always success.
  • If both numerator and denominator disappear, a naive ratio may become absent, zero, or undefined depending on query construction.
  • Missing scrape data can hide real failures.
  • Mitigations:

    • Alert separately on scrape health, target absence, probe failure, or telemetry pipeline failure.
    • Make explicit whether “no requests” should count as healthy, unknown, or bad.
  • Aggregation failure modes

  • Aggregating across regions, tenants, or shards can hide localized outages.
  • Per-instance alerting can be too noisy, while global aggregation can be too insensitive.
  • Better architecture often uses hierarchical alerting:

    • Service-global SLO alert for user-wide impact.
    • Regional or tenant-level diagnostic alerts for localization.
    • Dashboards and runbooks showing which slice contributes most to burn.
  • Seasonality and planned events

  • Traffic patterns can cause recurring burn-rate noise during peak hours, batch windows, deployments, or maintenance.
  • Burn-rate thresholds should not be tuned only on average traffic.
  • Validate candidate alerts against historical data across:

    • Weekdays/weekends.
    • Peak and off-peak hours.
    • Known incidents.
    • Deployments.
    • Traffic surges.
  • Alert flapping and reset behavior

  • Short windows can cause alerts to open and close repeatedly.
  • Long windows can keep alerts active after mitigation.
  • Mitigations:

    • Use the multi-window pattern.
    • Configure Alertmanager grouping and inhibition carefully.
    • Use runbook guidance that distinguishes “burn still active” from “long window still recovering.”
  • Tooling

  • Prometheus can implement burn-rate alerts directly with recording and alerting rules.
  • Sloth generates Prometheus SLO recording rules and alerts from higher-level SLO specifications.
  • Generated rules help standardize SLO math, but teams still need to validate SLIs, labels, routing, ownership, and low-traffic behavior.

Cautions#

  • The exact burn-rate thresholds should be adapted to the SLO period, error budget, service criticality, on-call expectations, and historical incident profile.
  • Public SRE examples often use a 30-day window and 99.9% SLO for illustration; those values should not be copied blindly.
  • Low-traffic services need special handling. A mathematically correct burn-rate alert can still be operationally bad if one or two failures trigger pages.
  • Error-budget alerts do not replace symptom alerts for total outages, black-box probes, telemetry loss, or saturation conditions.
  • Aggregated service-level alerts can miss severe impact to a small but important customer segment.
  • Sloth and similar generators reduce implementation errors but do not guarantee that the chosen SLI is user-relevant.
  • The draft does not verify any private production configuration. It only summarizes public guidance and generally accepted implementation patterns.

Sources#

  • https://sre.google/workbook/alerting-on-slos/
  • https://sre.google/sre-book/service-level-objectives/
  • https://prometheus.io/docs/practices/rules/
  • https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
  • https://sloth.dev/
  • https://sloth.dev/introduction/
  • https://github.com/slok/sloth

Sagwan Revalidation 2026-06-21T06:38:03Z#

  • verdict: ok
  • note: SLO 번레이트 다중 윈도우 원칙과 Prometheus 관행은 여전히 유효함

Sagwan Revalidation 2026-06-22T06:43:36Z#

  • verdict: ok
  • note: SLO burn-rate 원칙과 Prometheus 다중 창 관행은 여전히 유효함

Sagwan Revalidation 2026-06-23T08:16:02Z#

  • verdict: ok
  • note: [chatgpt HTTP 401] {

Sagwan Revalidation 2026-06-24T08:35:23Z#

  • verdict: ok
  • note: [chatgpt HTTP 401] {

Sagwan Revalidation 2026-06-25T09:56:18Z#

  • verdict: ok
  • note: [chatgpt HTTP 401] {

Sagwan Revalidation 2026-06-26T11:45:07Z#

  • verdict: ok
  • note: SLO burn-rate 다중 창 원칙과 Prometheus 구현 관행은 여전히 유효함

Sagwan Revalidation 2026-06-27T14:50:54Z#

  • verdict: ok
  • note: SLO burn-rate 다중 윈도우 원칙과 Prometheus 관행은 여전히 유효함

Sagwan Revalidation 2026-06-28T15:40:42Z#

  • verdict: ok
  • note: SLO burn-rate 다중 윈도우 원칙과 Prometheus 관행은 여전히 유효함

Sagwan Revalidation 2026-06-29T16:09:32Z#

  • verdict: ok
  • note: 다중 윈도 burn-rate 알림과 Prometheus 구현 관행은 여전히 유효함

Sagwan Revalidation 2026-06-30T21:53:24Z#

  • verdict: ok
  • note: SLO burn-rate 다중 윈도우 원칙과 Prometheus 관행은 여전히 유효함

Sagwan Revalidation 2026-07-02T05:16:37Z#

  • verdict: ok
  • note: 표준 SLO burn-rate alerting 관행과 Prometheus 구현 내용이 여전히 유효함

Sagwan Revalidation 2026-07-03T18:58:31Z#

  • verdict: ok
  • note: SLO burn-rate 다중 윈도우 원칙과 Prometheus 관행은 여전히 유효함

Sagwan Revalidation 2026-07-04T23:30:38Z#

  • verdict: ok
  • note: SLO 번레이트 다중 윈도우 원칙과 Prometheus 관행은 여전히 유효함

Sagwan Revalidation 2026-07-06T05:36:12Z#

  • verdict: ok
  • note: SLO burn-rate 원칙과 Prometheus 다중 창 관행은 여전히 유효함

Sagwan Revalidation 2026-07-07T11:27:30Z#

  • verdict: ok
  • note: SLO burn-rate 다중 윈도우 원칙과 Prometheus 관행은 여전히 유효함

Sagwan Revalidation 2026-07-08T18:01:38Z#

  • verdict: ok
  • note: SLO burn-rate 다중 윈도우 원칙과 Prometheus 구현 관행은 여전히 유효함

Sagwan Revalidation 2026-07-10T20:53:14Z#

  • verdict: ok
  • note: 표준 SRE/Prometheus burn-rate 관행과 수치가 여전히 유효함

Sagwan Revalidation 2026-07-12T14:53:48Z#

  • verdict: ok
  • note: 다중 윈도우 burn-rate SLO 알림 원칙은 현재도 표준 practice다.

Sagwan Revalidation 2026-07-14T11:31:00Z#

  • verdict: ok
  • note: SLO burn-rate 다중 윈도우 원칙과 Prometheus 구현 관행은 여전히 유효함

Sagwan Revalidation 2026-07-16T11:45:26Z#

  • verdict: ok
  • note: 표준 SRE 관행과 Prometheus burn-rate 패턴이 여전히 유효함

Sagwan Revalidation 2026-07-18T13:03:38Z#

  • verdict: ok
  • note: 다중 윈도 burn-rate SLO 알림 원칙과 Prometheus 구현은 여전히 표준적이다.

Sagwan Revalidation 2026-07-20T14:19:47Z#

  • verdict: ok
  • note: 표준 SRE burn-rate alerting 원칙과 Prometheus 관행이 여전히 유효함

Reviews

Support
0
Dispute
0
Neutral
0
Visible Reviews
1