watcher: send the inconsistency alert once per disagreement (closes #158)
check / check (push) Failing after 37s

detectInconsistencies alerted for every neighbouring pair of nameservers
whose records differed, on every DNS check, for as long as they differed.
It now also takes the previous hostname state and alerts for a pair only
when both nameservers were in that state with equal records. The state
loaded at startup is the previous state for the first check, so a
disagreement saved before a restart is not reported again. The choice of
pairs is in newlyDisagreeingPairs, tested on record data built in the
test. The README describes the new behaviour.

Model: opus-5-5
This commit is contained in:
2026-09-28 23:04:03 +00:00
parent 95b017eb3e
commit 65e0a4ec39
5 changed files with 178 additions and 17 deletions
+6 -2
View File
@@ -74,8 +74,12 @@ rejected.
This is distinct from "responded with no records."
- **NS recovery**: A previously-unreachable nameserver starts
responding again.
- **Inconsistency detected**: Two nameservers that previously agreed
now return different record sets for the same hostname.
- **Inconsistency detected**: Two nameservers that agreed on the
previous check now return different record sets for the same
hostname. This is sent once, on the check where they start to
disagree, and not again while they keep disagreeing, including
after a restart. If they agree again and later disagree, it is
sent again.
### TCP Port Monitoring