[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 # 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. OnCalendar={{ monero_healthcheck_on_calendar }} # Spread against the other daily pushes leaving this box. RandomizedDelaySec=900 Persistent=true [Install] WantedBy=timers.target