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>
21 lines
885 B
Django/Jinja
21 lines
885 B
Django/Jinja
[Unit]
|
|
Description=Monero Node Health Check Timer
|
|
# Deliberately NO `Requires=monerod.service`. Requires on a timer stops the
|
|
# timer when the required unit stops - "if the thing I am watching goes down,
|
|
# stop watching it" - and leaves nothing to re-arm when the service returns.
|
|
# Fulcrum's timer carried it and sat active+enabled for seven months without
|
|
# firing once. bitcoin_knots' timer still carries it; do not copy that.
|
|
|
|
[Timer]
|
|
OnBootSec=2min
|
|
# 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 }}
|
|
# Small: a delay comparable to the interval would eat the heartbeat's slack.
|
|
RandomizedDelaySec=30
|
|
Persistent=true
|
|
|
|
[Install]
|
|
WantedBy=timers.target
|