Skip to content

docs(runbook): the dead man's switch was tripped on purpose, and it worked (#288) - #409

Merged
Gerrrt merged 1 commit into
mainfrom
gerrrt/deadmans-switch-drill-288
Sep 9, 2026
Merged

docs(runbook): the dead man's switch was tripped on purpose, and it worked (#288)#409
Gerrrt merged 1 commit into
mainfrom
gerrrt/deadmans-switch-drill-288

Conversation

@Gerrrt

@Gerrrt Gerrrt commented Sep 9, 2026

Copy link
Copy Markdown
Owner

The #288 drill, run 2026-09-09 in one sitting with the operator watching the phone. Docs only; nothing on the live stack differs from main — the temporary 2m route was reverted from git and reloaded before this was written.

docker stop alertmanager 03:07:37 UTC
Check DOWN, email received 03:25:58 UTC (18 min; period 5m + grace 15m)
docker start alertmanager 03:25:58 UTC, ready in 5 s
First ping after restart 03:27:57 UTC, inside one repeat_interval
24h route at 2m, reloaded 03:28:29 UTC
Watchdog on the normal ntfy channel 03:28 UTC, on the phone
Route restored to 24h, reloaded 03:33:16 UTC

Zero delivery failures. The runbook's Confirming it actually works section carries this in the > **Done** banner form; the watcher banner, observability.md, the roadmap's #214 entry and check_alert_channels.py's docstring stop saying the switch was never tested.

Checks: make check-docs, scripts/lint.sh, py_compile on the touched script.

Closes #288 — deliberately.

🤖 Generated with Claude Code

…orked (#288)

A dead man's switch nobody has seen go red is indistinguishable from one
that does not work. On 2026-09-09, with the phone in hand: Alertmanager
stopped at 03:07:37 UTC seconds after a ping; the healthchecks.io check went
DOWN and emailed at 03:25:58, eighteen minutes in against a 5m period and
15m grace; Alertmanager started at 03:25:58 and the first ping after the
restart landed at 03:27:57, inside one repeat_interval. Then the daily half:
the second Watchdog route lowered to 2m and reloaded at 03:28:29, the
notification on the normal ntfy channel at 03:28, the route back to 24h and
reloaded at 03:33:16. Zero delivery failures across the window.

One observation from the daily half, recorded rather than fixed: a route
whose repeat_interval is below the root's 5m group_interval repeats on the
5m tick, the same coupling the heartbeat route already documents. It does
not touch the 24h route.

The runbook carries the times under "Confirming it actually works" in the
house banner form, the watcher banner says the drill was run the same day,
and observability.md, the roadmap and check_alert_channels.py's docstring
stop saying it was never tested. Refs #288.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@Gerrrt
Gerrrt merged commit 63fa35e into main Sep 9, 2026
3 checks passed
@Gerrrt
Gerrrt deleted the gerrrt/deadmans-switch-drill-288 branch September 9, 2026 03:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Watch the alerting dead man's switch trip, once

1 participant