The Three Terms
measurement, target, contractThree nested terms, easy to confuse and important to keep straight. An SLI is the measurement, an SLO is the target you set for it, and an SLA is the contract you promise a customer, with penalties if you miss.
SLI ââ Indicator: the raw measurement
"p99 request latency", "fraction of requests that succeed"
SLO ââ Objective: your internal target for that SLI
"99.9% of requests succeed in < 300ms"
SLA ââ Agreement: the external contract, with money attached
"99.5% uptime or you get a refund"
Rule: SLA is ALWAYS looser than SLO.
You promise customers less than you aim for, so an SLO miss
is an internal warning â not yet a contract breach.
Choosing SLIs
measure what users feel, not what machines doThe point of an SLI is to capture the user's experience, so measure things users feel: did the request succeed, how long did it take at the edge. Don't measure machine internals like CPU â a server at 90% CPU serving every request in 50ms is fine, and a server at 20% CPU timing out is not.
The Nines
each one multiplies the costAvailability is quoted in nines, and each extra nine shrinks your allowed downtime by 10Ã â and multiplies the cost to achieve it. Know the rough downtime budgets.
| Availability | Downtime / month | Downtime / year |
|---|---|---|
| 99% (two nines) | ~7.2 hours | ~3.65 days |
| 99.9% (three nines) | ~43 minutes | ~8.8 hours |
| 99.99% (four nines) | ~4.3 minutes | ~53 minutes |
| 99.999% (five nines) | ~26 seconds | ~5.3 minutes |
Error Budgets
reliability as arithmeticThe error budget is the clever inversion: 100% minus your SLO is a budget you're allowed to spend. A 99.9% SLO means 0.1% of requests are permitted to fail â that headroom is currency for shipping features, running experiments, and taking risks.
SLO 99.9% âââļ error budget = 0.1% of requests may fail
budget remaining ââļ ship freely, deploy, experiment, take risks
budget exhausted ââļ FREEZE features, stop risky deploys,
spend the sprint on reliability until it recovers
turns "how much reliability?" from an argument into a number both
the SRE and the product team can read off the same dashboard.
This dissolves the perennial fight between "ship faster" and "be more reliable." While budget remains, product ships. When it's spent, the team stops feature work and fixes reliability until the budget recovers. Reliability stops being a matter of opinion and becomes arithmetic both sides read off the same number.
Alerting
symptoms, not causesAlert on symptoms users feel â the SLI breaching its target â not on causes like high CPU. A CPU alert fires when nothing is wrong and stays silent when something is; an SLI alert fires exactly when users are hurting. Burn-rate alerts refine this: page when you're consuming the error budget fast enough to exhaust it soon, so severity scales with how quickly things are degrading.
Quick Reference
terms, nines, and budget| Term | Is | Example |
|---|---|---|
| SLI | The measurement | p99 latency, success rate |
| SLO | Internal target | 99.9% < 300ms |
| SLA | External contract (penalties) | 99.5% or refund â looser than SLO |
| Nines | Downtime / month |
|---|---|
| 99% | ~7.2 hours |
| 99.9% | ~43 minutes |
| 99.99% | ~4.3 minutes |
| 99.999% | ~26 seconds |