From: Frantisek Tobias Date: Tue, 16 Dec 2025 09:53:16 +0000 (+0100) Subject: modules/stats: collect doq statistics X-Git-Tag: v6.2.0~2^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=875a579abe4a5b5f4a9526addb1cdeffe456554f;p=thirdparty%2Fknot-resolver.git modules/stats: collect doq statistics --- diff --git a/modules/stats/stats.c b/modules/stats/stats.c index 6538ae4f4..b5732b4c1 100644 --- a/modules/stats/stats.c +++ b/modules/stats/stats.c @@ -52,8 +52,8 @@ X(answer,edns0) X(answer,do) \ X(query,edns) X(query,dnssec) \ X(request,total) X(request,total4) X(request,total6) X(request,internal) \ - X(request,udp4) X(request,tcp4) X(request,xdp4) X(request,dot4) X(request,doh4) \ - X(request,udp6) X(request,tcp6) X(request,xdp6) X(request,dot6) X(request,doh6) \ + X(request,udp4) X(request,tcp4) X(request,xdp4) X(request,dot4) X(request,doh4) X(request,doq4) \ + X(request,udp6) X(request,tcp6) X(request,xdp6) X(request,dot6) X(request,doh6) X(request,doq6) \ X(const,end) enum const_metric { @@ -96,6 +96,7 @@ static const struct sum_metric sum_metrics[] = { DEF(xdp), DEF(dot), DEF(doh), + DEF(doq), #undef DEF }; static const size_t sum_metrics_len = sizeof(sum_metrics) / sizeof(sum_metrics[0]); @@ -239,6 +240,8 @@ static int collect_transport(kr_layer_t *ctx) INC_PROTO(tcp); else if (req->qsource.flags.xdp) INC_PROTO(xdp); + else if (req->qsource.flags.quic) + INC_PROTO(doq); else INC_PROTO(udp); #undef INC_PROTO diff --git a/python/knot_resolver/manager/metrics/prometheus.py b/python/knot_resolver/manager/metrics/prometheus.py index d1ac6af44..8030e06c2 100644 --- a/python/knot_resolver/manager/metrics/prometheus.py +++ b/python/knot_resolver/manager/metrics/prometheus.py @@ -184,6 +184,24 @@ if PROMETHEUS_LIB: label=("instance_id", sid), value=metrics["request"]["xdp6"], ) + yield _counter( + "resolver_request_doq", + "number of external requests received over DNS-over-QUIC (RFC 9250)", + label=("instance_id", sid), + value=metrics["request"]["doq"], + ) + yield _counter( + "resolver_request_doq4", + "number of external requests received over IPv4 DNS-over-QUIC (RFC 9250)", + label=("instance_id", sid), + value=metrics["request"]["doq4"], + ) + yield _counter( + "resolver_request_doq6", + "number of external requests received over IPv6 DNS-over-QUIC (RF 9250)", + label=("instance_id", sid), + value=metrics["request"]["doq6"], + ) # "answer" metrics yield _counter(