Site Reliability Engineering & Cloud Ops
SRE SLO Error Budget & Burn-Rate Alert Formula
Calculate monthly SLO error-budget minutes, dimensionless Burn Rate = Error_Rate / (1 - SLO), hours to exhaustion, and Google SRE 14.4x fast-burn paging thresholds.
Replace noisy raw error-count alerts with dimensionless SRE Error-Budget Burn Rates!
In Site Reliability Engineering (Google SRE Workbook), a Service Level Objective SLO in (0, 1) (e.g., 99.9% availability over W_days = 30 days) grants an explicit Error Budget of W_days * 1,440 * (1 - SLO) downtime-equivalent minutes (and allowed failure fraction 1 - SLO). Rather than paging engineers on arbitrary 5-minute spikes, SRE multi-window alerting computes dimensionless Burn Rate BR = (Window_Errors / Window_Requests) / (1 - SLO)! At BR = 1.0x, the service consumes exactly 100% of its 30-day budget in 720 hours; at Google SRE’s standard Fast-Burn Page threshold BR >= 14.4x, the service burns 2.0% of its entire monthly error budget in just 1 hour (exhausting 100% in 720 / 14.4 = 50.0 hours)!
Verify on Target_SLO = 0.999 (B2 = 99.9%), Window_Days_W = 30 (B3 -> 43,200 minutes), Window_1h_Requests = 100,000 (B4), and Window_1h_Errors = 1,440 (B5 -> 1.44% error rate): Monthly Error Budget is 43,200 * 0.001 = 43.20 minutes, Burn Rate is 0.0144 / 0.001 = 14.4000x, Time to Complete Exhaustion is 720 / 14.40 = 50.00 hours, and Alert Action triggers "PAGE: Critical Fast Burn (>= 14.4x)"!
| SRE Error-Budget Metric (SLO=99.9%, 30d, 1,440/100k Errors) | Formula | Verified Output |
|---|---|---|
| 30-Day Error Budget (Minutes) | W_days * 1,440 * (1 - SLO) | 43.20 minutes |
| Current Error-Budget Burn Rate (BR) | (Errors / Requests) / (1 - SLO) | 14.4000x (2% Budget / Hour) |
| Hours Until 100% Budget Exhaustion | (W_days * 24) / BR | 50.00 hours |
| Multi-Severity Alert Tier | >= 14.4x Page | >= 1.0x Ticket | < 1.0x OK | PAGE: Critical Fast Burn (>= 14.4x) |
Dimensionless Error-Budget Burn Rate Formula
Validate 0 < SLO < 1, W_days > 0, Requests > 0, and 0 <= Errors <= Requests.
=LET(slo_t, B2, w_dy, B3, n_rq, B4, n_er, B5, IF(OR(slo_t <= 0, slo_t >= 1, w_dy <= 0, n_rq <= 0, n_er < 0, n_er > n_rq), "Invalid SLO Input", ROUND((n_er / n_rq) / (1 - slo_t), 4)))SRE Burn-Rate Alert Routing Formula
Route >= 14.4x to immediate paging, >= 1.0x to daytime Jira/ticket investigation, and < 1.0x to normal budget compliance.
=IF(ISTEXT(E3), E3, IF(E3 >= 14.4, "PAGE: Critical Fast Burn (>= 14.4x)", IF(E3 >= 1, "TICKET: Slow Burn (>= 1.0x)", "OK: Within Error Budget")))Try the example
Use the original values or change them to test your understanding.