On this page
What you need first
This lesson uses ideas from these earlier lessons. Read them first if any idea is new to you.
01Why interviewers ask this
The interviewer asks: "How do you know checkout is reliable enough? When do you wake an engineer?" A weak answer says "100% uptime". A strong answer sets a target on what users feel, counts the failure allowed, and wakes someone only when that allowance burns too fast.
02The idea in plain words
Think of a 30 GB monthly data pack. Use 10 GB on day one and you will run out in 3 days, so you act.
- An SLI (service level indicator) is a measured number that shows what users feel. An example is the share of checkout requests that succeed in 1,000 ms or less (lesson 91).
- An SLO (service level objective) is a target for the SLI over a window: 99.9% good requests over 30 days.
- The error budget is what the SLO allows to fail: 100% minus the SLO. For 99.9% it is 0.1% of requests, or 0.1% of 43,200 minutes = 43.2 minutes (lesson 4). While budget is left, ship changes. When it is gone, fix reliability first. A 100% target leaves no budget.
- The burn rate is how many times faster than the steady pace you use the budget: error rate / (1 - SLO). A burn rate of 1 uses the whole budget in exactly 30 days.
An alert is a message to a person when a number crosses a line. A page wakes the on-call engineer, the person responsible this week. A ticket can wait.
A fixed line such as "page above 10% errors" misses a small problem that lasts long. So alert on burn rate over a long window, and over a short window one twelfth as long. Both must be over the line, so the alert stops soon after a fix. Budget used = burn rate x window / 30 days. Time to alert = window x line / burn rate, if the burn starts at once. For 99.9%, the Google SRE Workbook suggests: page at burn 14.4 over 1 hour (2% of budget) or 6 over 6 hours (5%), and a ticket at 1 over 3 days (10%).
A runbook is a short page linked from the alert: what it means, where to look, the first safe step, whom to call.
An SLA (service level agreement) is a contract with a customer. It says what happens if the promise is missed, usually a service credit: part of the bill returned. A target with no consequence is an SLO. Keep the SLO stricter than the SLA. Your providers limit your SLA: if every checkout needs a 99.9% provider, you cannot promise 99.99%. A contract also says how uptime is measured.
Stuck on something? The AI tutor has read this lesson. Ask it with a free account
03Pause and predict
Pause. Guess first.
An SLO is 99.9% over 30 days. A bad deploy makes 5% of requests fail. How many times faster than the steady pace is the budget used? How many hours until it is gone?
Write your guess before you read on. The answer is in the worked example.
04Worked example
SwadKart checkout. Assumptions (made up): SLO 99.9% over 30 days, 200 requests a second.
Step 1: budget. Requests = 200 x 86,400 x 30 = 518,400,000. Budget = 0.1% = 518,400 bad requests = 518,400 / 200 = 2,592 seconds = 43.2 minutes of full outage.
Step 2: a bad deploy. 5% fail for 30 minutes. Bad requests = 200 x 1,800 x 0.05 = 18,000, which is 3.5% of the budget. Burn rate = 5% / 0.1% = 50. The budget is gone in 720 hours / 50 = 14.4 hours.
Step 3: alerts. "Page above 10% errors" never fires at 5%. The burn rule fires after 1 hour x 14.4 / 50 = 0.29 hours, about 17 minutes. By then 200 x 1,037 x 0.05 = 10,368 requests have failed: 2% of the budget. The runbook says: open the dashboard (lesson 91); if a deploy was in the last hour, go back to the old version.
Step 4: a slow leak. 0.3% errors is burn rate 3: the budget lasts 30 / 3 = 10 days. A 10% line never fires, and 3 is below 6. The ticket rule fires after 3 days x 1 / 3 = 1 day. Then 3 x 24 / 720 = 10% of the budget is gone.
05Trade-offs
An SLO solves arguments about "reliable enough". It costs effort to measure. Burn alerts solve missed leaks. They cost rules to tune. I would change the target when users complain or cannot tell the difference.
06Common misconceptions
"The target should be 100%." It leaves no budget.
"An SLO and an SLA are the same." An SLA has a consequence.
"Alert on a fixed error line." A 10% line missed both the deploy and the leak.
07How to say it in the interview
Say it like this
I would set the SLO on what users feel, such as 99.9% of checkout requests good over 30 days. I would page when the error budget burns 14.4 times too fast over an hour, and link a runbook to every alert.
08Check your understanding
- What are an SLI, an SLO, an SLA and an error budget?
- SLO 99.95% over 30 days, 100 requests a second. (a) How many bad requests are allowed? (b) How many minutes of full outage? (c) Errors are 1%: burn rate, and hours the budget lasts?
- SLO 99.9%, errors 0.2% all month. Does a page rule fire? A ticket rule?
09Answers
Show the answers
- SLI: a measured number users feel. SLO: its target. SLA: a contract with a consequence. Error budget: 100% minus the SLO.
- (a) 100 x 86,400 x 30 = 259,200,000 requests. 0.05% of that is 129,600. (b) 0.05% x 43,200 = 21.6 minutes. (c) 1% / 0.05% = 20. 720 / 20 = 36 hours.
- Burn rate = 0.2% / 0.1% = 2, below both page lines. It is above 1, so the ticket fires after 3 days x 1 / 2 = 1.5 days.
10Sources
- SLI, SLO, SLA: Google SRE book, "Service Level Objectives", https://sre.google/sre-book/service-level-objectives/ (opens in a new tab).
- Burn rate, rules 14.4, 6 and 1: Google SRE Workbook, "Alerting on SLOs", https://sre.google/workbook/alerting-on-slos/ (opens in a new tab).
- Service credits: Amazon EC2 SLA, https://aws.amazon.com/compute/sla/ (opens in a new tab). Checked 20 Oct 2026. Rates and the runbook are assumptions.
Try it now, no sign-up
- Play Level 1: one server and 100 users. Free, no sign-up.
- Read today’s Drill: one real situation, answered in about 7 minutes.
More practice, in the app (free account)
Related lessons and practice
Ask the AI tutor about this lesson
The tutor has read this lesson. Ask in your own words, any time. Free account, 20 questions a day.
Reading never needs an account. The account is for the tutor, the quiz, your notes and your progress.