Skip to main content

SLOs

Service-level objectives with error-budget and burn-rate tracking. One row per objective: Objective, Scope, Target, Observed, Budget, Burn (fast / slow) and State.

The nav entry appears once opt.AddSlo(...) is registered.

Reading a row

  • Scope is the dimension the objective watches — a queue, a job type, or * for everything.
  • Observed is what actually happened over the objective's window, read from the same durable aggregates the Counters page uses.
  • Budget is how much of your allowed failure remains. Negative means you've spent more than the objective permits.
  • Burn (fast / slow) is the multi-window burn rate: the short window catches a sudden outage, the long one catches a slow bleed. Sustained burn above 1× exhausts the budget before the window closes.

States

StateMeaning
HealthyAttainment above target, budget intact
WarningBurning faster than sustainable
BreachingTarget missed
AcknowledgedBreaching, but silenced until the ack expires
NoDataNothing matched the dimension in the window

NoData is deliberately not Healthy. A typo'd queue or job type reads as "we are measuring nothing" rather than a false green, and never alerts.

Objective kinds

Five, all evaluated from aggregates already being folded — nothing new is measured on the worker hot path:

  • Success rate — completed vs failed.
  • Queue-wait latency — how long jobs sit unclaimed.
  • Execution latency — how long handlers take.
  • Backlog depth — a threshold on queue depth.
  • Deadline attainment — how often a job with a total-scope timeout finished inside it. A late completion counts as a miss: a handler that ignores its cancellation token and finishes anyway still missed the deadline.

Latency objectives read a windowed percentile histogram whose buckets reach 30s, 60s and 300s — job execution and queue-wait run well past HTTP timescales, so a 30s target observes properly instead of saturating at the top bucket.

Alerting

A healthy → breaching edge fires once through the operational-notifier seam. Acknowledging suppresses it until the ack expires. Warp ships no channel integrations — register an IWarpNotifier and route it wherever you page.

See also

  • SLO and error budget — defining objectives, burn-rate windows, evaluation cadence.
  • Counters — the aggregates objectives are computed from.