]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: add some missing counters. Fixes #9675 9685/head
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 9 Nov 2020 11:33:57 +0000 (12:33 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 9 Nov 2020 15:44:58 +0000 (16:44 +0100)
pdns/common_startup.cc
pdns/packethandler.cc
pdns/responsestats-auth.cc
regression-tests.nobackend/counters/command
regression-tests.nobackend/counters/expected_result

index b9a752d8318e88ce5ccb99ada70d51e1083d23a4..32fca88ede51a8ebdbfcb49dff45bea85be1ad5a 100644 (file)
@@ -364,7 +364,10 @@ void declareStats(void)
   S.declare("key-cache-size", "Number of entries in the key cache", DNSSECKeeper::dbdnssecCacheSizes, StatType::gauge);
   S.declare("signature-cache-size", "Number of entries in the signature cache", signatureCacheSize, StatType::gauge);
 
+  S.declare("nxdomain-packets","Number of times an NXDOMAIN packet was sent out");
+  S.declare("noerror-packets","Number of times a NOERROR packet was sent out");
   S.declare("servfail-packets","Number of times a server-failed packet was sent out");
+  S.declare("unauth-packets","Number of times a domain we are not auth for was queried");
   S.declare("latency","Average number of microseconds needed to answer a question", getLatency, StatType::gauge);
   S.declare("timedout-packets","Number of packets which weren't answered within timeout set");
   S.declare("security-status", "Security status based on regular polling", StatType::gauge);
index 29628f9de17db4b6f92aa7963f8150b2f5d12e63..67a39c7ad98aee1e714664b439ba5f4e49761419 100644 (file)
@@ -1064,6 +1064,7 @@ void PacketHandler::makeNOError(DNSPacket& p, std::unique_ptr<DNSPacket>& r, con
     addNSECX(p, r, target, wildcard, sd.qname, mode);
   }
 
+  S.inc("noerror-packets");
   S.ringAccount("noerror-queries", p.qdomain, p.qtype);
 }
 
index ac4f75a4c82d38c7be22846046449842a5ed130a..7562f1de7013ba00a99d16883f1e43a2357ef129 100644 (file)
@@ -23,9 +23,12 @@ void ResponseStats::submitResponse(DNSPacket &p, bool udpOrTCP) {
   static AtomicCounter &tcpbytesanswered6=*S.getPointer("tcp6-answers-bytes");
 
   if(p.d.aa) {
-    if (p.d.rcode==RCode::NXDomain)
+    if (p.d.rcode==RCode::NXDomain) {
+      S.inc("nxdomain-packets");
       S.ringAccount("nxdomain-queries", p.qdomain, p.qtype);
+    }
   } else if (p.d.rcode == RCode::Refused) {
+    S.inc("unauth-packets");
     S.ringAccount("unauth-queries", p.qdomain, p.qtype);
     S.ringAccount("remotes-unauth",p.d_remote);
   }
index 91ef56e8dce57eff0cae6d870ef0b390c3b61864..7caa30973c987aac547c9717e2f6f7f42d4ca9bb 100755 (executable)
@@ -26,6 +26,15 @@ $SDIG ::1 $port random.example.com A tcp >&2 >/dev/null
 $SDIG ::1 $port example.com SOA >&2 >/dev/null
 $SDIG ::1 $port example.com SOA tcp >&2 >/dev/null
 
+# NXDOMAIN
+$SDIG 127.0.0.1 $port nx.example.com A >&2 >/dev/null
+
+# NOERROR
+$SDIG 127.0.0.1 $port example.com SRV >&2 >/dev/null
+
+# unauth
+$SDIG 127.0.0.1 $port example.invalid MX >&2 >/dev/null
+
 $PDNSCONTROL --config-name= --no-config --socket-dir=./ 'show *' | \
   tr ',' '\n'| grep -v -E '(user-msec|sys-msec|cpu-iowait|cpu-steal|uptime|udp-noport-errors|udp-in-errors|real-memory-usage|special-memory-usage|udp-recvbuf-errors|udp-sndbuf-errors|-hit|-miss|fd-usage|latency|backend-queries)' | LC_ALL=C sort
 
index 895c4206134845fb05091664244f44751cecc2e3..69b6391106cab566f71c1d4850151eff93342144 100644 (file)
@@ -11,11 +11,13 @@ dnsupdate-refused=0
 incoming-notifications=0
 key-cache-size=0
 meta-cache-size=1
+noerror-packets=1
+nxdomain-packets=1
 open-tcp-connections=0
 overload-drops=0
-packetcache-size=4
+packetcache-size=7
 qsize-q=0
-query-cache-size=4
+query-cache-size=12
 rd-queries=0
 recursing-answers=0
 recursing-questions=0
@@ -52,14 +54,15 @@ tcp6-answers-bytes=132
 tcp6-answers=2
 tcp6-queries=2
 timedout-packets=0
-udp-answers-bytes=264
-udp-answers=4
+udp-answers-bytes=460
+udp-answers=7
 udp-do-queries=0
-udp-queries=4
-udp4-answers-bytes=132
-udp4-answers=2
-udp4-queries=2
+udp-queries=7
+udp4-answers-bytes=328
+udp4-answers=5
+udp4-queries=5
 udp6-answers-bytes=132
 udp6-answers=2
 udp6-queries=2
+unauth-packets=1
 xfr-queue=0