DevFlow
Docs/SLOs and alerting

SLO overview: error budgets, targets, and windows

Owner Amaia Larrea · Last updated 2026-04-09 · v4.1
sloslierror-budgetreliabilitysre

SLO overview

A Service Level Objective (SLO) is a measurable promise about your service's reliability. DevFlow's SLO product is a thin opinionated model on top of your existing monitors.

the model

An SLO has:

  • A target99.9% for example.
  • A window28d rolling, typically.
  • A good-event definition — what counts as a successful request. Often a response-assertions expression.
  • An error budget — the permitted unreliability, derived from target and window.

For a 99.9% SLO over 28 days, the error budget is 28 × 24 × 60 × (1 - 0.999) = ~40 minutes.

creating one

yaml
name: payments-availability-99.9
target: 0.999
window: 28d
sli:
  source_monitor: payments-api-charge
  good_event:
    status_in: [200, 201, 204]
    latency_lt_ms: 1000

Or in Terraform — see terraform-provider.

the SLO page

Each SLO has a page that shows:

  • SLI — current attainment over the window.
  • Burn rate — multiplier on error budget (1.0 means burning budget at the rate that exhausts it exactly at window end).
  • Time to depletion — estimate based on current burn rate.
  • Recent burn events — windows in the last 14 days where burn rate exceeded 2.0.

alerting on SLOs, not monitors

Alerting on raw monitor failures is loud. Alerting on error budget burn is calm and meaningful. The recommended approach uses two windows — see slo-multi-window-alerting for the canonical Google CRE pattern.

tagging

Every monitor that contributes to an SLO should carry the slo tag matching the SLO name. tagging-strategy documents the convention.

Related questions

Was this helpful?
Or ask the docs bot for a follow-up — the floating button bottom-right.