馃煚 LOW SEV 路 Inference Block-Notify SLO Miss
馃敟 A block notification blew its 22s freshness budget and was never sent
<|馃搱 graph> 路 <|馃搳 service dashboard> 路
:rotating_light: alarm definition 路
:no_bell: silence
_LOW SEV. THIS IS THE NOTIFICATION, NOT THE BLOCK. When a notify is missed, enforcement STILL HAPPENED - the proxy cut the traffic regardless, reading proxy
block{device}:{activity} from Redis inline on every connection. What is lost is the EXPLANATION: the kid is not told why traffic stopped. No screen-time data is miscounted and no limit went unenforced, which is why this is a warning and not a critical.
Still worth alerting because past the 22s budget (BLOCK_NOTIFY_FRESHNESS_MS 20s + HYSTERESIS 2s) the code does NOT send late - it HOLDS, terminally. So a miss is no notification at all, not a late one, and there is no retry.
slo_miss only increments when we were LIVE (caught up) and still blew the budget, which is why it is the right signal rather than the latency histogram - that histogram also observes held pushes from catch-up drains whose age is minutes-to-hours, so its p99 reads ~238s on prod and is not an SLO signal.
Prod lifetime: 11 sent, 1 SLO miss. Low volume (~7 pushes/day), so any miss is worth a look._
Grafana vmain-281d1d0