← Home ← Codex ← DEBT ← Engine
Browse by Category
+ added · updated 7d
← Back to glossary

SLA / SLO / Error Budgets (SRE)

DevOps Intermediate
debt(d7/e7/b5/t7)
d7 Detectability Operational debt — how invisible misuse is to your safety net

Closest to 'only careful code review or runtime testing' (d7). The detection_hints note automated=no and tools like Datadog, Prometheus, and Grafana can surface SLO breaches, but only after the system is instrumented and SLOs are defined. Misconfigurations such as measuring server uptime instead of user-facing success rate, or having no SLO definition at all, are invisible until a human audits the observability setup or users experience failures in production.

e7 Effort Remediation debt — work required to fix once spotted

Closest to 'cross-cutting refactor across the codebase' (e7). The quick_fix requires defining SLIs, SLOs, and SLAs from user journeys and instrumenting critical endpoints. This is not a one-line patch — it involves choosing what to measure, updating monitoring pipelines, aligning contractual language, and potentially changing deployment practices (e.g. stopping maintenance from burning error budget). This touches multiple teams and systems rather than a single component.

b5 Burden Structural debt — long-term weight of choosing wrong

Closest to 'persistent productivity tax' (b5). Once SLOs and error budgets are in place, every future deployment decision, incident response, and release planning session is shaped by whether the error budget is healthy or exhausted. It applies to web and API contexts broadly and imposes an ongoing operational discipline on all teams, but it does not rewrite the system's architecture — it's a governance and measurement overlay.

t7 Trap Cognitive debt — how counter-intuitive correct behaviour is

Closest to 'serious trap — contradicts how a similar concept works elsewhere' (t7). The misconception field is explicit: developers commonly treat SLA and SLO as interchangeable, but they are fundamentally different commitments with different audiences and consequences. The SLA should be lower than the SLO to provide a buffer, yet the common mistake listed is setting SLAs tighter than SLOs — the opposite of correct practice. This directly contradicts intuition and is a well-documented industry trap.

About DEBT scoring →

Also Known As

SLA SLO SLI service level agreement error budget

TL;DR

SLA is the external promise; SLO is the internal target; error budget is the allowed downtime — together they guide reliability decisions.

Explanation

Service Level Agreement (SLA): a contractual commitment to customers, often with financial penalties for breach (99.9% uptime = 8.7 hours downtime/year). Service Level Objective (SLO): an internal reliability target, more ambitious than the SLA, used to drive engineering decisions (99.95% uptime internally). Service Level Indicator (SLI): the actual measured metric (request success rate, p99 latency). Error Budget: the allowed failure headroom (100% - SLO). If the error budget is exhausted, new feature work pauses in favour of reliability improvements. For PHP applications, SLIs are defined against: HTTP success rate (non-5xx), p99 response time, and critical job completion rate.

Common Misconception

SLA and SLO are the same commitment expressed differently. An SLO is an internal target (99.9% availability). An SLA is an external contractual commitment, typically lower than the SLO to provide a buffer. Violating an SLA has financial or legal consequences; missing an SLO is an internal signal to improve.

Why It Matters

SLOs define measurable reliability targets; SLAs are contractual commitments; error budgets give teams a quantified allowance for risk — together they make reliability engineering data-driven instead of opinion-based.

Common Mistakes

  • SLOs that are too tight — 99.999% uptime leaves only 5 minutes of downtime per year, making all change risky.
  • Not measuring SLOs from the user's perspective — internal health checks that pass while users see errors.
  • SLAs tighter than your SLOs — the SLA is what you commit to customers; your SLO should have a safety buffer.
  • Burning error budget on planned maintenance — maintenance should not consume the reliability budget.

Code Examples

✗ Vulnerable
// No SLO — reliability managed by gut feeling:
// 'Is the site up?' → 'Seems fine'
// No data on actual uptime, latency, or error rates
// SLA commitments made without knowing if they can be met

// With SLO:
// SLO: 99.9% of requests < 500ms, error rate < 0.1%
// Error budget: 43.8 min/month
// Current burn rate: 2x — need to pause non-critical deploys
✓ Fixed
# SLA / SLO / SRE — reliability engineering vocabulary

# SLI (Service Level Indicator) — what you measure
# - Availability: % of requests returning 2xx/3xx
# - Latency: % of requests < 300ms
# - Error rate: % of requests returning 5xx

# SLO (Service Level Objective) — your internal target
# - Availability: 99.5% (allows ~3.6h downtime/month)
# - Latency p99: < 500ms
# - Error rate: < 0.1%

# SLA (Service Level Agreement) — contractual commitment with consequences
# - 99.9% availability — below this triggers service credits

# Error budget:
# SLO 99.5% availability = 0.5% budget = 3.6h/month
# Burn too fast → freeze feature work, prioritise reliability
# Budget remaining → ship features confidently

# PHP monitoring stack:
# Prometheus + Grafana, Datadog, New Relic, or Laravel Telescope + Horizon

Added 15 Mar 2026
Edited 22 Mar 2026
Views 114
Rate this term
No ratings yet
🤖 AI Guestbook educational data only
| |
Last 30 days
0 pings F 0 pings S 0 pings S 1 ping M 0 pings T 0 pings W 0 pings T 0 pings F 0 pings S 1 ping S 0 pings M 1 ping T 0 pings W 0 pings T 0 pings F 0 pings S 0 pings S 0 pings M 1 ping T 1 ping W 1 ping T 0 pings F 0 pings S 0 pings S 0 pings M 1 ping T 0 pings W 0 pings T 0 pings F 0 pings S
No pings yet today
No pings yesterday
Amazonbot 14 Google 11 Perplexity 8 Ahrefs 8 ChatGPT 8 SEMrush 7 Scrapy 5 Twitter/X 3 Unknown AI 2 Applebot 2 Bing 1 Meta AI 1 PetalBot 1
crawler 66 crawler_json 5
DEV INTEL Tools & Severity
🟡 Medium ⚙ Fix effort: Medium
⚡ Quick Fix
Define SLIs (what you measure), SLOs (target value), and SLAs (contractual commitments) from user journeys — start with availability and latency for your most critical PHP endpoints
📦 Applies To
any web api
🔗 Prerequisites
🔍 Detection Hints
No SLO definition; measuring server uptime not user-facing success rate; SLA without underlying SLO measurement
Auto-detectable: ✗ No datadog prometheus grafana
⚠ Related Problems
🤖 AI Agent
Confidence: Low False Positives: High ✗ Manual fix Fix: Medium Context: File


✓ schema.org compliant