Skip to content
Oznog

2.9 · monitoring and alerting · as-is

An alert fired continuously on the normal state of a design it misunderstood, and was removed rather than tuned

date
20260911
what happened
From the moment the fabric had two redundant routers, a routing alert fired continuously, because the metric it read reflects which router is the currently elected primary, and by design exactly one of two redundant routers is always the standby. The alert was permanently reporting the system's correct resting state as a fault, and it duplicated an existing alert for the condition that actually mattered.
what it cost
A continuously firing alert that, left alone, would have trained anyone watching to ignore the entire topic of routing redundancy.
what changed
The alert was deleted rather than adjusted, and replaced with metrics that distinguish three genuinely different router states (approved, actively advertising, currently elected primary) and two new alerts built on the real gap the old alert had accidentally named.
the check now
Fewer than two nodes approved for the shared route for 15 minutes pages, guarded so that a dead router-management service reports as itself rather than as no redundancy. More than two primary elections in two hours pages as flapping.

A monitoring rule can read its target correctly every single time and still misrepresent the system. This one did. The fleet advertises internal routes over a mesh VPN from two redundant routers, and the metric the alert watched reports which of them is currently the elected primary. In a healthy, correctly redundant pair, exactly one router is not the primary, at all times, forever. The alert had been written by someone whose mental model of “advertising the route” did not match how the failover software actually behaves when there are two of them. So it reported the design working as intended as a fault, continuously, from the day the second router was added.

The instinct when an alert misfires is to raise its threshold or add a delay. No threshold fixes an alert built on a wrong premise; it only makes the wrong alert quieter. The rule was deleted.

The useful part is what was found in its place. Reading the broken alert’s own description text showed it had been trying, badly, to say something real. Nothing anywhere checked whether the standby router was still an approved participant in the route at all. An unapproved standby looks completely fine until the moment a failover needs it, which is the worst possible moment to discover it. That became the replacement alert, along with a flapping check on repeated primary elections, and a guard so that the router-management service being down reports as itself rather than as a loss of redundancy.

Source: node0 lessons v0.1, lesson 2.9. Sanitized: checklist v0.1, 20260921; hostnames, mesh node names; voice pass 20260921. Part of oznog.com/node0.