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:
- Define SLIs as ratios, such as bad requests / total requests or failed probes / total probes.
- Record rolling-window SLI error ratios with Prometheus recording rules.
- Convert the SLO target into an error-budget fraction and compare observed error ratio against burn-rate thresholds.
- 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
1means the service is consuming exactly the permitted 0.1% error budget pace. A burn rate of14.4means 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.4threshold:14.4 × 0.001 = 0.0144, or 1.44% bad events.
- Error budget ratio:
-
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
Related#
- Curation Core Sync: cursor, watermark, and manual-trigger failure modes
- Curation Pipeline:
research_status=?Unknown-State Failure Mode and Logging Design - System Design Reference Capsule (Superseded)
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 관행이 여전히 유효함