monero: check every five minutes again

The probes, the unit check and the public checks ran once a day with 26h
windows, justified as "a multi-week initial sync on a rotating disk". That
stopped being true: the node is synced, and a cold explorer page now renders
in 29s and a warm one in 0.2s - polling every 5 minutes is what keeps it warm.
A dead monerod could go unnoticed for a day.

Back to the standard 5m cadence and 11m heartbeat; the per-host
service_health override on monerod-box is gone.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
counterweight 2026-10-19 22:10:24 +02:00
parent 532974634e
commit f33f1a4b67
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
8 changed files with 36 additions and 73 deletions

View file

@ -104,15 +104,17 @@ healthcheck_push_url: ""
# is set: Gatus rejects an unauthenticated push with 401.
healthcheck_push_token: ""
# WHEN TO CHECK. Daily, at a fixed hour, rather than an OnUnitActiveSec
# interval that drifts with every restart.
# WHEN TO CHECK. Every 5 minutes, on the calendar rather than OnUnitActiveSec so
# the cadence does not drift with every restart. (It was daily while the node
# did its initial sync on a rotating disk; since 2026-10-03 the chain is on NVMe
# and fully synced, and get_info answers in well under a second.)
#
# Prefixed because the generic `healthcheck` role owns the unprefixed
# healthcheck_on_calendar; an unprefixed default here would shadow it for any
# play that includes both.
#
# Paired with the 26h Gatus heartbeat in
# Paired with the standard 11m Gatus heartbeat in
# infra/403_service_probe_registration.yml. Change one and you must change the
# other: the window has to stay above the interval or the check alerts on its
# own jitter.
monero_healthcheck_on_calendar: "*-*-* 05:00:00"
monero_healthcheck_on_calendar: "*:0/5"

View file

@ -8,17 +8,13 @@ Description=Monero Node Health Check Timer
[Timer]
OnBootSec=2min
# ONCE A DAY, not every 5 minutes.
#
# A 5-minute poll of monerod buys nothing a daily one does not: the node is a
# multi-week initial sync on a rotating disk, and every failing poll is another
# Signal message. The cadence and the Gatus heartbeat window are ONE decision -
# the window MUST exceed this interval, and it is set to 26h in
# infra/403_service_probe_registration.yml. A 24h push under a 24h window races
# itself and alerts on jitter alone.
# Every 5 minutes (see monero_healthcheck_on_calendar). The cadence and the
# Gatus heartbeat window are ONE decision - the window MUST exceed this
# interval, and it is the standard 11m in
# infra/403_service_probe_registration.yml.
OnCalendar={{ monero_healthcheck_on_calendar }}
# Spread against the other daily pushes leaving this box.
RandomizedDelaySec=900
# Small: a delay comparable to the interval would eat the heartbeat's slack.
RandomizedDelaySec=30
Persistent=true
[Install]