Burn rate, not raw error rate. Normalizing by the budget makes the
number comparable across services and ties directly to "time to
exhaustion," which is what you alert on.
Conjunction (long AND short) to page. The long window kills
blip-paging; the short window auto-resolves the alert after recovery.
This is the single most important alerting design choice.
Float tolerance in tests.1 − target isn't exact; comparisons use
an epsilon — the correct way to test floating-point math.
Bulkhead = non-blocking semaphore. Reject-not-queue (fail fast) so a
saturated dependency doesn't build an unbounded queue (the gw-06 lesson).
SLO target vs cost/velocity. Higher targets cost exponentially and
shrink the error budget (less room to ship). Pick what users need, not
the max.
Window sizes vs detection speed. Short long-windows page faster but
risk blips; long ones are robust but slow. Production uses several pairs
at different thresholds to balance.
Bulkhead sizing. Too small starves a healthy dependency; too large
fails to isolate. Size to the dependency's healthy concurrency, like a
pool (gw-04).
Symptom vs cause alerting. Page on SLO burn (user impact); route
cause metrics to dashboards. Mixing them causes fatigue.
Rolling time-window SLI computation from real metrics (gw-11), multiple
burn-rate/window pairs, and an error-budget policy (what freezes when
the budget is gone).
Bulkheads + breakers + adaptive concurrency + timeouts composed per
dependency (gw-06), with criticality-aware shedding and degradation.