SLOs (Service Level Objectives)
Definition
A Service Level Objective (SLO) is a measurable target for how a service should perform, usually expressed as a percentage or numerical value.
Think of it as the goal for service reliability, performance, or availability that a team commits to.
It sits within the hierarchy:
- SLA (Service Level Agreement) – External contract with customers.
- SLO (Service Level Objective) – The internal target that supports the SLA.
- SLI (Service Level Indicator) – The actual measurement (metric) used to evaluate performance.
Examples of SLOs
- Availability:
- “Service will be available 99.9% of the time per calendar month.”
- SLI = uptime percentage.
- Latency:
- “95% of requests complete within 300ms.”
- SLI = response time distribution.
- Error Rate:
- “Fewer than 0.1% of HTTP requests return 5xx errors in a 30-day window.”
- SLI = error rate.
- Throughput:
- “System can handle at least 5,000 requests per second during peak load.”
- SLI = request rate.
Why SLOs Matter
- Customer trust: Define reliability in measurable terms.
- Engineering focus: Prevent “chasing 100%” (which is costly and unrealistic).
- Balance: Encourage a trade-off between speed of innovation and reliability.
- Error budget:
- If SLO is 99.9% availability, then the “error budget” is 0.1% downtime allowed.
- Helps decide when to prioritize reliability vs. new features.
Example in Practice
Suppose your SLA with a client requires 99.5% uptime.
- Your internal SLO: 99.9% uptime (to have margin above SLA).
- Your SLI: Actual measured uptime over the last 30 days.
If uptime drops to 99.6%:
- SLA is safe (above 99.5%).
- But your SLO is breached (below 99.9%).
- That breach signals reliability risk before SLA penalties occur.
Key takeaway:
SLOs are measurable internal goals for service performance (availability, latency, errors, throughput). They link real measurements (SLIs) to customer commitments (SLAs) and guide engineering trade-offs using error budgets.
