Skip to Content

How do you define an SLI and an SLO that you can actually measure?

Category: Observability & Tracing

Answer

SLI = the user-visible latency. SLO = the target (“99% of requests served in < 200 ms over a 30-day window”). Error budget = 1 - SLO = 1% of requests may be slow. The SLO points at a histogram with buckets around 200 ms; track monthly in Grafana; pause risky deploys when budget is already burnt.

Concrete examples from the fca project context

Example 1

SLI: p99 latency of /chat/stream for “first token” event.

Example 2

SLO: 99% of first tokens within 300 ms, measured over 30 days.

Example 3

Error budget: 1% of /chat/stream calls may exceed; deploys gated by remaining budget.

Data flow / flow chart

requests over time -> histogram buckets near SLO -> monthly %  
  burn rate = (1 - actual%) / (1 - SLO%) --- pause deploys > 1

Takeaway

Pick the SLO from a histogram that’s already populated. Post-hoc SLOs are made up.