Treat unreachable resolvers as unknown, not warnings

An unreachable resolver tells us nothing about propagation: it's neither
a disagreement nor an error in the zone. Surface it as a distinct
Unreachable state so it stops polluting warning counts and the
Disagreeing/Errored buckets.
This commit is contained in:
nemunaire 2026-05-25 16:21:41 +08:00
commit d4c44e879b
5 changed files with 28 additions and 17 deletions

View file

@ -71,7 +71,7 @@ func (r *resolverLatencyRule) Evaluate(ctx context.Context, obs sdk.ObservationG
var states []sdk.CheckState
for _, rv := range data.Resolvers {
if !rv.Reachable {
states = append(states, warnState(CodeResolverUnreachable, rv.ID,
states = append(states, unknownState(CodeResolverUnreachable, rv.ID,
fmt.Sprintf("resolver %s (%s, %s) did not answer any query", rv.Name, rv.IP, rv.Transport)))
continue
}