The SRE Glossary: SLA vs SLO vs SLI Explained
Site Reliability Engineering (SRE) uses quantitative metrics to track service availability, system performance, and team response efficiency. However, the terminology can be confusing for new developers and business stakeholders.
This glossary defines the core SRE terms and metrics you need to build a reliable monitoring strategy.
📐 The Reliability Metrics: SLA vs. SLO vs. SLI
These three acronyms define availability and performance objectives, but they target different audiences.
1. SLA (Service Level Agreement)
An SLA is a legal agreement between a service provider and its customers. It defines the expected service availability and the financial or legal penalties (such as billing credits) if the provider fails to meet it.
- Example: "Our API will maintain 99.9% uptime per billing cycle, or we will refund 10% of your subscription cost."
2. SLO (Service Level Objective)
An SLO is a target metric set internally by engineering teams to measure reliability. It is always stricter than the SLA to provide a buffer before legal commitments are breached.
- Example: "Our internal target is 99.95% API uptime this quarter."
3. SLI (Service Level Indicator)
An SLI is the actual measurement of your system's performance at any given moment. It is the math behind your SLO.
- Example: "The percentage of HTTP requests returning a status code 200 in under 200 milliseconds over the last 30 days."
📈 Operational Performance Metrics
MTTR (Mean Time to Repair / Resolve)
The average time it takes to fully resolve an incident after it has been detected by your monitoring system.
- Calculation:
Total Outage Duration / Number of Incidents
MTBF (Mean Time Between Failures)
The average time a system runs continuously without experiencing an outage or failure.
- Calculation:
Total Uptime Hours / Number of Failures
MTTD (Mean Time to Detect)
The average time between the start of an outage and when your alerting systems trigger a notification to the on-call engineer. Using high-frequency checks reduces MTTD.
🔌 Core Monitoring Concepts
Synthetic Monitoring (Active Checking)
A monitoring method where external servers regularly simulate user traffic (e.g., pinging an endpoint, inspecting SSL, checking DNS resolution) to verify availability.
Heartbeat / Cron Monitoring (Passive Checking)
A monitoring style where your background scripts or backup cron jobs regularly check in with the monitoring provider. If a script fails to ping the check-in URL within a configured time window, the system triggers an alert.
Uptime Badge
A public-facing status indicator that displays live availability metrics on a website or GitHub readme to build user trust.