]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Add SNMP metrics for new counts
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Mon, 12 Sep 2022 10:45:47 +0000 (12:45 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 27 Sep 2022 14:31:52 +0000 (16:31 +0200)
pdns/rec-snmp.cc
pdns/recursordist/RECURSOR-MIB.txt

index 2eb8d4de9343c97551acde6f5fc4f2b203593093..c847aee742594dadf913a0dfb51ff92e55c7a97f 100644 (file)
@@ -150,6 +150,24 @@ static const oid nonResolvingNameserverEntriesOID[] = {RECURSOR_STATS_OID, 126};
 static const oid maintenanceUSecOID[] = {RECURSOR_STATS_OID, 127};
 static const oid maintenanceCallsOID[] = {RECURSOR_STATS_OID, 128};
 
+static const oid rcode0AnswersOID[] = {RECURSOR_STATS_OID, 129, 0};
+static const oid rcode1AnswersOID[] = {RECURSOR_STATS_OID, 129, 1};
+static const oid rcode2AnswersOID[] = {RECURSOR_STATS_OID, 129, 2};
+static const oid rcode3AnswersOID[] = {RECURSOR_STATS_OID, 129, 3};
+static const oid rcode4AnswersOID[] = {RECURSOR_STATS_OID, 129, 4};
+static const oid rcode5AnswersOID[] = {RECURSOR_STATS_OID, 129, 5};
+static const oid rcode6AnswersOID[] = {RECURSOR_STATS_OID, 129, 6};
+static const oid rcode7AnswersOID[] = {RECURSOR_STATS_OID, 129, 7};
+static const oid rcode8AnswersOID[] = {RECURSOR_STATS_OID, 129, 8};
+static const oid rcode9AnswersOID[] = {RECURSOR_STATS_OID, 129, 9};
+static const oid rcode10AnswersOID[] = {RECURSOR_STATS_OID, 129, 10};
+static const oid rcode11AnswersOID[] = {RECURSOR_STATS_OID, 129, 11};
+static const oid rcode12AnswersOID[] = {RECURSOR_STATS_OID, 129, 12};
+static const oid rcode13AnswersOID[] = {RECURSOR_STATS_OID, 129, 13};
+static const oid rcode14AnswersOID[] = {RECURSOR_STATS_OID, 129, 14};
+static const oid rcode15AnswersOID[] = {RECURSOR_STATS_OID, 129, 15};
+
+
 static std::unordered_map<oid, std::string> s_statsMap;
 
 /* We are never called for a GETNEXT if it's registered as a
@@ -388,5 +406,24 @@ RecursorSNMPAgent::RecursorSNMPAgent(const std::string& name, const std::string&
   registerCounter64Stat("non-resolving-nameserver-entries", nonResolvingNameserverEntriesOID, OID_LENGTH(nonResolvingNameserverEntriesOID));
   registerCounter64Stat("maintenance-usec", maintenanceUSecOID, OID_LENGTH(maintenanceUSecOID));
   registerCounter64Stat("maintenance-calls", maintenanceCallsOID, OID_LENGTH(maintenanceCallsOID));
+
+#define RCODE(num) registerCounter64Stat("auth-" + RCode::to_short_s(num) + "-answers", rcode ##num ## AnswersOID, OID_LENGTH(rcode ##num ## AnswersOID))
+  RCODE(0);
+  RCODE(1);
+  RCODE(2);
+  RCODE(3);
+  RCODE(4);
+  RCODE(5);
+  RCODE(6);
+  RCODE(7);
+  RCODE(8);
+  RCODE(9);
+  RCODE(10);
+  RCODE(11);
+  RCODE(12);
+  RCODE(13);
+  RCODE(14);
+  RCODE(15);
+
 #endif /* HAVE_NET_SNMP */
 }
index a4889fc9f39a43125451f4e4b62c4fa80ce410c0..816fc47d0eeaa74fb29db154aba873953bb06f33 100644 (file)
@@ -51,6 +51,9 @@ rec MODULE-IDENTITY
     REVISION "202208220000Z"
     DESCRIPTION "Added internal maintenance metrics."
 
+    REVISION "202209120000Z"
+    DESCRIPTION "Added metrics for answers from auths by rcode"
+
     ::= { powerdns 2 }
 
 powerdns               OBJECT IDENTIFIER ::= { enterprises 43315 }
@@ -1081,6 +1084,135 @@ maintenanceCount OBJECT-TYPE
         "Number of times internal maintenance has been called, including Lua maintenance"
     ::= { stats 128 }
 
+authrcode0Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 0 (noerror) answers received"
+    ::= { stats 129 }
+
+authrcode1Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 1 (formerr) answers received"
+    ::= { stats 130 }
+
+authrcode2Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 2 (servfail) answers received"
+    ::= { stats 131 }
+
+authrcode3Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 3 (nxdomain) answers received"
+    ::= { stats 132 }
+
+authrcode4Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 4 (notimp) answers received"
+    ::= { stats 133 }
+
+authrcode5Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 5 (refused) answers received"
+    ::= { stats 134 }
+
+authrcode6Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 6 (yxdomain) answers received"
+    ::= { stats 135 }
+
+authrcode7Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 7 (yxrrset) answers received"
+    ::= { stats 136 }
+
+authrcode8Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 8 (nxrrset) answers received"
+    ::= { stats 137 }
+
+authrcode9Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 9 (notauth) answers received"
+    ::= { stats 138 }
+
+authrcode10Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 10 answers received"
+    ::= { stats 139 }
+
+authrcode11Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 11 answers received"
+    ::= { stats 140 }
+
+authrcode12Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 12 answers received"
+    ::= { stats 141 }
+
+authrcode13Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 13 answers received"
+    ::= { stats 142 }
+
+authrcode14Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 14 answers received"
+    ::= { stats 143 }
+
+authrcode15Count OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of rcode 15 answers received"
+    ::= { stats 144 }
+
+
 ---
 --- Traps / Notifications
 ---
@@ -1256,7 +1388,23 @@ recGroup OBJECT-GROUP
         zoneDisallowedNotify,
         nonResolvingNameserverEntries,
         maintenanceUSec,
-        maintenanceCalls
+        maintenanceCalls,
+        authrcode0Count,
+        authrcode1Count,
+        authrcode2Count,
+        authrcode3Count,
+        authrcode4Count,
+        authrcode5Count,
+        authrcode6Count,
+        authrcode7Count,
+        authrcode8Count,
+        authrcode9Count,
+        authrcode10Count,
+        authrcode11Count,
+        authrcode12Count,
+        authrcode13Count,
+        authrcode14Count,
+        authrcode15Count
     }
     STATUS current
     DESCRIPTION "Objects conformance group for PowerDNS Recursor"