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
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 */
}
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 }
"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
---
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"