What are SLIs, SLOs and an error budget, and how do they fit together?
An SLI is a measured metric of service quality, an SLO is the agreed target for that metric, and the error budget is the amount of failure the SLO still allows (100% minus the target) over a period.
* A 99.9% SLO over 30 days leaves 43.2 minutes; each incident spends some, and a nearly empty budget means slowing down risky releases. *
DevOps/SRE starts from two ideas: the work must deliver measurable, agreed business value, and it is statistically impossible to deliver that perfectly. The three terms turn those ideas into numbers:
- Service Level Indicator (SLI): a real, measured metric that reflects what the customer experiences, such as the share of successful requests or the share of requests answered in under 300 ms.
- Service Level Objective (SLO): the target for that SLI, such as "99.9% of requests succeed, measured over 30 days".
- Error budget: what is left over. At 99.9%, 0.1% may fail. For availability over 30 days that is 0.1% × 43,200 minutes = about 43 minutes of downtime. Each failure against the SLO is subtracted from this budget.
A worked example: a team has used 30 of its 43 minutes halfway through the month. With 13 minutes left, it slows down risky releases. Had it used only 5 minutes, it could ship faster.
Tip: Indicator = what you measure, Objective = what you aim for, budget = what you are allowed to lose.
Go deeper:
Google SRE book — Service Level Objectives — how to choose SLIs and set SLOs in practice.
Service-level objective — Wikipedia — SLO vs SLA vs SLI in short.