Add timed mutes so a temporary problem stops needing a permanent exemption

Every existing exemption lasts until someone remembers to undo it, and nobody
does — Healarr has sat in a pressure list since it was uninstalled and seven
ignore entries name containers that are gone. A mute states when it ends and
then ends, capped by WATCHDOG_MUTE_MAX_HOURS so temporary is enforced rather
than intended. Applied where IGNORE_MAP is built, so all five check sites
inherit it, and shown with its countdown because an invisible suppression is
the thing being fixed.
This commit is contained in:
Gmer4Lfe
2026-08-14 16:28:59 -04:00
parent 9f32644c32
commit 2cd1384786
5 changed files with 204 additions and 0 deletions
+8
View File
@@ -1600,9 +1600,17 @@
SYS_WATCHDOG_STATE_FILE="$STATE_DIR/system_watchdog_state.db"
DOCKER_WATCHDOG_FAILED_FILE="$STATE_DIR/docker_watchdog_failed.db"
DOCKER_WATCHDOG_INTENTIONAL_FILE="$STATE_DIR/docker_intentional_stops.db"
WATCHDOG_MUTE_FILE="$STATE_DIR/watchdog_mutes.db"
SYS_WATCHDOG_REBOOT_LOG="$STATE_DIR/system_watchdog_reboots.db"
SYS_WATCHDOG_OOM_FILE="$STATE_DIR/system_watchdog_oom.db"
# ━━━ Timed Mutes ━━━
# A mute silences one container for a bounded time and then expires on its own. It exists because
# every other exemption here is permanent — SCAN_IGNORE is a conf edit, an intentional stop lasts
# until cleared — so a temporary problem gets a permanent workaround that nobody revisits.
# Capped so "temporary" is enforced rather than intended: a mute longer than this is refused.
WATCHDOG_MUTE_MAX_HOURS=8
# ━━━ Strike and Reboot Loop Settings ━━━
# Strike system: a check must fail this many consecutive cycles before action is taken.
# Single spikes (one bad reading) are ignored — sustained problems trigger reboot.