Day 107: SLIs and SLOs
Turning "is it working?" into a number
An SLI (Service Level Indicator) is a specific, measured metric — "the fraction of requests served in under 300ms," "the fraction of requests returning a non-5xx status." An SLO (Service Level Objective) is a target for that SLI — "99.9% of requests succeed" — that you set deliberately, informed by what users actually need, not just what's technically achievable.
SLI: proportion of HTTP requests with status < 500, measured over a rolling 28 days
SLO: 99.9% of requests must meet this SLI
"Error budget": 0.1% of requests are allowed to fail before violating the SLOWhy 99.9% and not 100%
Chasing 100% is usually the wrong goal: it requires disproportionate engineering effort for diminishing user-perceptible benefit, and (per Phase 7's CAP/PACELC) may be genuinely impossible without sacrificing something else users care about more (latency, feature velocity). An SLO is a deliberate, negotiated trade-off, not an aspiration to perfection.
Key terms
- SLI
- A specific, measured indicator of service behavior (e.g. latency, error rate).
- SLO
- A target threshold for an SLI, chosen deliberately based on user needs.
Why would a team deliberately choose a 99.9% SLO instead of targeting 100% uptime?