Service Level Indicators (SLIs), Objectives (SLOs), and Error Budgets
In Site Reliability Engineering, reliability is not 100%. 100% uptime is impractical, cost-prohibitive, and halts innovation velocity. Instead, SRE manages reliability mathematically using SLIs (What you measure), SLOs (Your internal target), and Error Budgets (The acceptable margin of failure).
⚡ Quick Dive
SLI vs. SLO vs. SLA vs. Error Budget Rosetta Stone
| Term | Full Name | Definition | Example / Target |
|---|---|---|---|
| SLI | Service Level Indicator | Quantifiable metric measuring service health | Successful HTTP requests / Total HTTP requests |
| SLO | Service Level Objective | Internal target threshold for an SLI over a rolling window | 99.9% of requests respond successfully over 30 days |
| SLA | Service Level Agreement | Legal contract with customers with financial penalties | 99.5% uptime (Credit issued if breached) |
| Error Budget | Acceptable Failure Allowance | $100% - \text{SLO}$ budget used for shipping risky features | $0.1% \text{ allowable errors} \approx 43.2\text{ minutes downtime/month}$ |
The "Nines" of Availability (Downtime per Time Window)
| Target Availability | Downtime per Month (30 Days) | Downtime per Year (365 Days) | Error Budget (Monthly) |
|---|---|---|---|
| 99% ("Two Nines") | 7.2 hours | 3.65 days | 1% |
| 99.9% ("Three Nines") | 43.2 minutes | 8.76 hours | 0.1% |
| 99.95% | 21.6 minutes | 4.38 hours | 0.05% |
| 99.99% ("Four Nines") | 4.32 minutes | 52.56 minutes | 0.01% |
| 99.999% ("Five Nines") | 25.9 seconds | 5.26 seconds | 0.001% |
📖 Extended Guide
1. Error Budget Policies: Balancing Velocity and Reliability
┌──────────────────────────────────────────────┐
│ Is Error Budget Remaining? (> 0%) │
└──────────────────────┬───────────────────────┘
│
┌───────────────────┴───────────────────┐
▼ (YES) ▼ (NO - Budget Exhausted!)
┌──────────────────────────────────┐ ┌──────────────────────────────────┐
│ Feature Velocity Unconstrained │ │ FEATURE FREEZE INITIATED │
│ - Ship experiments & new code │ │ - Deployments halted │
│ - Run chaos experiments & load │ │ - 100% focus on stability, bugs, │
│ tests safely │ │ monitoring & reliability debt │
└──────────────────────────────────┘ └──────────────────────────────────┘
2. Multi-Window Multi-Burn-Rate Alerting
Traditional threshold alerts (e.g. "alert if error rate > 1%") cause alert fatigue during brief spikes or fail to page on slow, steady degradation. Burn Rate Alerting fires based on how fast the error budget is being consumed:
$$\text{Burn Rate} = \frac{\text{Observed Error Rate}}{1 - \text{SLO}}$$
- A Burn Rate of 1 consumes 100% of the monthly error budget in exactly 30 days.
- A Burn Rate of 14.4 consumes 100% of the budget in 2 days (requires immediate page).