Mercurial > prosody-hg
diff net/adns.lua @ 13659:5abdcad8c2e0
net.adns: Collect DNS lookup timing metrics
Nice to have this in OpenMetricts instead of debug logs
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 07 Feb 2025 09:22:52 +0100 |
| parents | ba409c67353b |
| children |
line wrap: on
line diff
--- a/net/adns.lua Thu Feb 06 17:37:59 2025 +0000 +++ b/net/adns.lua Fri Feb 07 09:22:52 2025 +0100 @@ -74,11 +74,17 @@ return handler; end +local function measure(_qclass, _qtype) + return measure; +end + function async_resolver_methods:lookup(handler, qname, qtype, qclass) local resolver = self._resolver; + local m = measure(qclass or "IN", qtype or "A"); return coroutine.wrap(function (peek) if peek then log("debug", "Records for %s already cached, using those...", qname); + m(); handler(peek); return; end @@ -89,6 +95,7 @@ log("debug", "Reply for %s (%s)", qname, coroutine.running()); end if ok then + m(); ok, err = pcall(handler, resolver:peek(qname, qtype, qclass)); else log("error", "Error sending DNS query: %s", err); @@ -129,4 +136,5 @@ end; resolver = new_async_resolver; new_async_socket = new_async_socket; + instrument = function(measure_) measure = measure_; end; };
