SLOs · 03 of 04 · State

One signal, two states, and a first sighting

Every signal of every SLO is one row in the plugin database. A transition is announced exactly once, and a restart no longer forgets what was already said.

One signal, two states, and a first sighting A state diagram for one signal of one SLO. A signal with no stored row is seeded silently as healthy, or announced when first seen burning. Within the stored row, healthy moves to burning when the value goes above the fire level, and burning moves back to healthy when it drops below the clear level. Both of those moves, and the first-seen burning case, lead to an Announce step that sends one notification and then persists the new state. SLO_TRANSITION_STATE · ONE ROW PER SIGNALSILENT SEEDANNOUNCEABOVE FIREBELOW CLEARNo row yetfirst sightinghealthystate = healthyburningstate = burningAnnounceone notification, then persistThe first time an SLO is seen it is either announced or recorded silently. It is never ignored.LEGENDNo stored stateHealthyBurningAnnouncesMoves silently

First sighting

An SLO first seen burning is announced; one first seen healthy is recorded silently. That is why a restart does not replay old alerts, and why a new burning SLO is never missed.

The band

Between the clear and fire levels the stored state holds. An SLO hovering at the line used to flap between burning and recovered every 10 to 30 minutes; it now stays put.

Failure

The row is claimed with a compare-and-set before announcing. If the send fails the claim is undone and the next tick retries, and two overlapping ticks cannot both announce.

Hangar · SLOs