Skip to content

SLOs & error budgets

An SLO is one objective for a service, or for one route, over a rolling window:

  • availability: the share of requests without an error is at least the target
  • latency: the share of requests at or under a threshold is at least the target

For each SLO the dashboard shows the current SLI, the error budget left, and burn rates over 5 minutes, 30 minutes, 1 hour and 6 hours.

Define an SLO

SLOs are managed with the ingest key, an admin's session, or a project key with the admin scope. The read key can't change anything.

# 99.5% of /checkout requests succeed, over 28 days
curl -X PUT http://localhost:8000/v1/slos \
  -H "X-Reqly-Key: demo-key" -H "Content-Type: application/json" \
  -d '{"service_name": "checkout-api", "name": "checkout availability",
       "route": "/checkout", "objective": "availability", "target": 0.995}'

# 95% of all requests take 800 ms or less
curl -X PUT http://localhost:8000/v1/slos \
  -H "X-Reqly-Key: demo-key" -H "Content-Type: application/json" \
  -d '{"service_name": "checkout-api", "name": "API latency",
       "objective": "latency", "target": 0.95, "latency_threshold_ms": 800}'
Field Required Notes
service_name ✅
name ✅ SLOs are created or updated by service + name
objective ✅ availability or latency
target ✅ e.g. 0.995
latency_threshold_ms for latency
route Leave it out for a service-wide SLO
window_days 1–90, default 28

GET /v1/slos lists SLOs with their live status; DELETE /v1/slos/{id} removes one. The local demo creates three SLOs for the demo services on start-up.

Burn-rate alerts

Every 5 minutes, Reqly applies the multi-window burn-rate rules from the Google SRE workbook:

Alert Fires when
Fast burn the 1-hour and 5-minute burn rates are both ≥ 14.4
Slow burn the 6-hour and 30-minute burn rates are both ≥ 6

The longer window also needs at least 20 requests. The short window makes the alert stop soon after the problem does.

There is one open alert per SLO. It goes to the same channels as anomaly alerts and resolves after 30 minutes out of burn.

How it's computed

  • SLI and error budget come from the per-minute aggregates, so a 28-day window is cheap. Latency SLOs read the share of requests under the threshold straight from the merged latency sketch.
  • Burn rates come from raw events, which are current to the second.