Task · MDE-0020

Make DNS failure and queue metrics truthful

Description

PR #733 P3.6/P3.7 remain in services/dns_resolver.py:285-525 and collectors/clients.py:1545-1620. with_timeout uses the same sentinel for timeout and arbitrary exceptions, so lookup_timeouts counts non-timeout failures. queue_peak_depth reports the bounded handoff queue and saturates at max_concurrent_lookups, hiding the producer backlog and racing across concurrent batches. Separate failure causes and expose a queue/backlog measure whose value changes with real pending work.

Acceptance Criteria

Definition of Done

Implementation Plan

Wave 1 L5: separate DNS failure causes and concurrency-safe backlog accounting alongside the privacy audit; root integrates and finalizes.

Final Summary

Implemented and verified in 7327153. DNS timeout/failure and producer backlog signals are exclusive and overlap-safe; full gates passed.

References

View the source file on GitHub