]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: metrics: added prometheus missing IPv4/6 metrics
authorAleš Mrázek <ales.mrazek@nic.cz>
Tue, 10 Jun 2025 16:17:27 +0000 (18:17 +0200)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Wed, 11 Jun 2025 10:28:05 +0000 (12:28 +0200)
NEWS
python/knot_resolver/manager/metrics/prometheus.py

diff --git a/NEWS b/NEWS
index c523e0aea4052ecf08ce831932097bcae09c5f62..4203a6585491cf4b98bf22a60fb7d04d90b1d73f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,12 @@
+Knot Resolver 6.0.15 (2025-06-dd)
+=================================
+
+Bugfixes
+--------
+- manager: prometheus metrics update (!1703, #917)
+  - added missing metrics split by IPv4 and IPv6
+
+
 Knot Resolver 6.0.14 (2025-06-03)
 =================================
 
index 4242d960e20428448f1c4d06417eb2c19eb8370b..65bedfab71a9cf88e997c8ad53ae09ddfc079287 100644 (file)
@@ -63,12 +63,25 @@ if PROMETHEUS_LIB:
             sum_value=metrics["answer"]["sum_ms"] / 1_000,
         )
 
+        # "request" metrics
         yield _counter(
             "resolver_request_total",
             "total number of DNS requests (including internal client requests)",
             label=("instance_id", sid),
             value=metrics["request"]["total"],
         )
+        yield _counter(
+            "resolver_request_total4",
+            "total number of IPv4 DNS requests",
+            label=("instance_id", sid),
+            value=metrics["request"]["total4"],
+        )
+        yield _counter(
+            "resolver_request_total6",
+            "total number of IPv6 DNS requests",
+            label=("instance_id", sid),
+            value=metrics["request"]["total6"],
+        )
         yield _counter(
             "resolver_request_internal",
             "number of internal requests generated by Knot Resolver (e.g. DNSSEC trust anchor updates)",
@@ -81,30 +94,92 @@ if PROMETHEUS_LIB:
             label=("instance_id", sid),
             value=metrics["request"]["udp"],
         )
+        yield _counter(
+            "resolver_request_udp4",
+            "number of external requests received over IPv4 plain UDP (RFC 1035)",
+            label=("instance_id", sid),
+            value=metrics["request"]["udp4"],
+        )
+        yield _counter(
+            "resolver_request_udp6",
+            "number of external requests received over IPv6 plain UDP (RFC 1035)",
+            label=("instance_id", sid),
+            value=metrics["request"]["udp6"],
+        )
         yield _counter(
             "resolver_request_tcp",
             "number of external requests received over plain TCP (RFC 1035)",
             label=("instance_id", sid),
             value=metrics["request"]["tcp"],
         )
+        yield _counter(
+            "resolver_request_tcp4",
+            "number of external requests received over IPv4 plain TCP (RFC 1035)",
+            label=("instance_id", sid),
+            value=metrics["request"]["tcp4"],
+        )
+        yield _counter(
+            "resolver_request_tcp6",
+            "number of external requests received over IPv6 plain TCP (RFC 1035)",
+            label=("instance_id", sid),
+            value=metrics["request"]["tcp6"],
+        )
         yield _counter(
             "resolver_request_dot",
             "number of external requests received over DNS-over-TLS (RFC 7858)",
             label=("instance_id", sid),
             value=metrics["request"]["dot"],
         )
+        yield _counter(
+            "resolver_request_dot4",
+            "number of external requests received over IPv4 DNS-over-TLS (RFC 7858)",
+            label=("instance_id", sid),
+            value=metrics["request"]["dot4"],
+        )
+        yield _counter(
+            "resolver_request_dot6",
+            "number of external requests received over IPv6 DNS-over-TLS (RFC 7858)",
+            label=("instance_id", sid),
+            value=metrics["request"]["dot6"],
+        )
         yield _counter(
             "resolver_request_doh",
             "number of external requests received over DNS-over-HTTP (RFC 8484)",
             label=("instance_id", sid),
             value=metrics["request"]["doh"],
         )
+        yield _counter(
+            "resolver_request_doh4",
+            "number of external requests received over IPv4 DNS-over-HTTP (RFC 8484)",
+            label=("instance_id", sid),
+            value=metrics["request"]["doh4"],
+        )
+        yield _counter(
+            "resolver_request_doh6",
+            "number of external requests received over IPv6 DNS-over-HTTP (RFC 8484)",
+            label=("instance_id", sid),
+            value=metrics["request"]["doh6"],
+        )
         yield _counter(
             "resolver_request_xdp",
             "number of external requests received over plain UDP via an AF_XDP socket",
             label=("instance_id", sid),
             value=metrics["request"]["xdp"],
         )
+        yield _counter(
+            "resolver_request_xdp4",
+            "number of external requests received over IPv4 plain UDP via an AF_XDP socket",
+            label=("instance_id", sid),
+            value=metrics["request"]["xdp4"],
+        )
+        yield _counter(
+            "resolver_request_xdp6",
+            "number of external requests received over IPv6 plain UDP via an AF_XDP socket",
+            label=("instance_id", sid),
+            value=metrics["request"]["xdp6"],
+        )
+
+        # "answer" metrics
         yield _counter(
             "resolver_answer_total",
             "total number of answered queries",
@@ -195,6 +270,8 @@ if PROMETHEUS_LIB:
             label=("instance_id", sid),
             value=metrics["answer"]["edns0"],
         )
+
+        # "query" metrics
         yield _counter(
             "resolver_query_edns",
             "number of queries with EDNS present",
@@ -208,6 +285,7 @@ if PROMETHEUS_LIB:
             value=metrics["query"]["dnssec"],
         )
 
+        # "predict" metrics (optional)
         if "predict" in metrics:
             if "epoch" in metrics["predict"]:
                 yield _counter(