Observability and reliability
Burn-rate alerts
A burn rate compares your error rate with the pace that would use the budget exactly over the window. Page on fast burns over two windows, to catch problems early without noise.
Paging when a 30-day SLO dips below target is too late. By then the month is already ruined. A burn rate asks a faster question: at the current error rate, how quickly are we spending the budget? A burn rate of 1 means the budget runs out exactly at the end of the window.
Concept
Before you start. Read error budgets. The allowed error ratio for a 99.9% SLO is 0.1%, which is the budget you burn.
Walking through the arithmetic
For a 99.9% SLO, the sustainable error ratio is 0.1%.
Burn rate = current error ratio / allowed error ratio
Error ratio 1%: 1% / 0.1% = 10x
Budget gone in: 30 days / 10 = 3 daysNow pick a threshold. Say you want to page when you would burn 2% of the 30-day budget in one hour.
30 days = 720 hours
2% of budget in 1 of 720 hours -> burn rate = 0.02 / (1 / 720) = 14.4
Error ratio at 14.4x = 14.4 x 0.001 = 1.44%The 14.4x pattern
Google's SRE Workbook recommends multi-window alerts. Page only when both windows agree:
- Burn rate over 1 hour is above 14.4, and
- Burn rate over 5 minutes is above 14.4.
The long window gives precision, so a brief spike does not page anyone. The short window confirms the burn is still happening, and it clears the alert quickly after recovery. A slower companion alert, such as 6x over 6 hours and 30 minutes, catches bleeds that the fast alert misses.
This sketch uses placeholder metric names. Copy the exact tables from the workbook rather than inventing constants. The query below is the 1-hour burn rate against a 99.9% SLO, where the error budget is 0.001.
(
sum(rate(http_requests_bad[1h])) / sum(rate(http_requests_total[1h]))
) / 0.001 > 14.4Repeat the same expression with [5m], and combine the two with and.
Exhaustion table
Keep this near your runbook. It shows how fast a sustained error rate empties a 99.9% monthly budget.
| Sustained error ratio | Burn rate | Time to empty budget |
|---|---|---|
| 0.1% | 1x | 30 days |
| 0.2% | 2x | 15 days |
| 1% | 10x | 3 days |
| 1.44% | 14.4x | about 2.1 days |
| 10% | 100x | about 7.2 hours |
| 100% | 1000x | about 43 minutes |
A total outage should also trigger a separate "service dark" alert. Burn-rate tiers catch partial degradations that an up-or-down check misses. During an incident, quote the burn rate in the channel, such as "burning about 20x on the 1-hour window." It tells leadership how urgent the problem is.
Trade-off
A plain threshold, such as "error rate above 1%," ignores how much budget is left. A 30-day SLO alert is too slow. Multi-window burn-rate alerts take more thought to set up, but they avoid both silence and noise.
Common mistakes
- Alerting only on the monthly SLO breach. You learn about it after the budget is gone.
- Using one error-rate threshold for everything. It does not account for the budget left.
- Defining "error" differently in the alert and the SLO. Use one definition for both.
Check yourself
- What is the burn rate of a 1% error rate on a 99.9% SLO? Answer: 10, because 1% divided by 0.1% is 10.
- Why check both the 1-hour and 5-minute windows? Answer: the 1-hour window avoids paging on brief spikes. The 5-minute window confirms the burn is ongoing and clears the alert quickly after recovery.
Key takeaways
- Burn rate equals the current error ratio divided by the allowed ratio.
- For 99.9% over 30 days, page on 14.4x over both 1 hour and 5 minutes.
- Threshold alerts alone ignore the budget, so pair them with burn rates.
- Next, latency SLOs show how to measure "fast enough."
Further learning
The SRE Workbook's chapter on alerting on SLOs has the full tables. Copy them rather than rebuilding the constants.
Alerting on SLOs (Google SRE Workbook)Turn SLOs into actionable alerts on significant events using Prometheus alerting. Improve precision, recall, detection time, and time for alerting.sre.googleRelated
SLIs, SLOs and error budgets
Define reliability in numbers users care about, then use error budgets and burn-rate alerts to balance shipping speed against stability.
Error budgets
The error budget is the failure your SLO allows. Turn it into numbers, and agree on a policy for what happens when it runs low.
Metrics, dashboards and alerting
Golden signals, RED and USE, Prometheus histograms and alerts that page you only when users are hurting.