]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Implement metrics
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 28 May 2025 11:43:02 +0000 (13:43 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 28 May 2025 11:43:02 +0000 (13:43 +0200)
pdns/recursordist/RECURSOR-MIB.txt
pdns/recursordist/rec-snmp.cc
pdns/recursordist/rec_channel_rec.cc
pdns/recursordist/ws-recursor.cc

index 01b8d6f56560a5be07f25db2830fe16a6b35c579..62537e7a41c7052d7ab01857b1395d9e009b240e 100644 (file)
@@ -21,50 +21,8 @@ rec MODULE-IDENTITY
     DESCRIPTION
        "This MIB module describes information gathered through PowerDNS Recursor."
 
-    REVISION "202505270000Z"
-    DESCRIPTION "Added metric for missing ECS in reply"
-
-    REVISION "202408280000Z"
-    DESCRIPTION "Added metric for too many incoming TCP connections"
-
-    REVISION "202408130000Z"
-    DESCRIPTION "Added metric for chain limits reached"
-
-    REVISION "202405230000Z"
-    DESCRIPTION "Added metrics for maximum chain length and weight"
-
-    REVISION "202306080000Z"
-    DESCRIPTION "Added metrics for NOD and UDR events"
-
-    REVISION "202302240000Z"
-    DESCRIPTION "Added metrics for sharded packet cache contention"
-
-    REVISION "202209120000Z"
-    DESCRIPTION "Added metrics for answers from auths by rcode"
-
-    REVISION "202208220000Z"
-    DESCRIPTION "Added internal maintenance metrics."
-
-    REVISION "202201310000Z"
-    DESCRIPTION "Added non-resolving NS name metric."
-
-    REVISION "202111090000Z"
-    DESCRIPTION "Added NOTIFY-related metrics."
-
-    REVISION "202110270000Z"
-    DESCRIPTION "Added more UDP errors metric."
-
-    REVISION "202107200000Z"
-    DESCRIPTION "Added almost expired task metrics."
-
-    REVISION "202101050000Z"
-    DESCRIPTION "Added Aggressive NSEC cache metrics."
-
-    REVISION "202002170000Z"
-    DESCRIPTION "Added proxyProtocolInvalid metric."
-
-    REVISION "201911140000Z"
-    DESCRIPTION "Added qnameMinFallbackSuccess stats."
+    REVISION "201611290000Z"
+    DESCRIPTION "Initial revision."
 
     REVISION "201812240000Z"
     DESCRIPTION "Added the dnssecAuthenticDataQueries and dnssecCheckDisabledQueries stats."
@@ -1536,13 +1494,9 @@ recGroup OBJECT-GROUP
         udrEvents,
         maxChainLength,
         maxChainWeight,
-<<<<<<< HEAD
-        chainLimits
-=======
         chainLimits,
         tcpOverflow,
         ecsMissing
->>>>>>> 36edbdb8b (Add setting and metric)
     }
     STATUS current
     DESCRIPTION "Objects conformance group for PowerDNS Recursor"
index f6e91ec455d5d579472a55cf80350e6b1d5f3ea5..de675281e00e12c3186a820ff099a36cdbf9414c 100644 (file)
@@ -206,6 +206,8 @@ static const oid10 udrEventsOID = {RECURSOR_STATS_OID, 148};
 static const oid10 maxChainLengthOID = {RECURSOR_STATS_OID, 149};
 static const oid10 maxChainWeightOID = {RECURSOR_STATS_OID, 150};
 static const oid10 chainLimitsOID = {RECURSOR_STATS_OID, 151};
+static const oid10 tcpOverflowOID = {RECURSOR_STATS_OID, 152};
+static const oid10 ecsMissingOID = {RECURSOR_STATS_OID, 153};
 
 static std::unordered_map<oid, std::string> s_statsMap;
 
@@ -462,6 +464,8 @@ RecursorSNMPAgent::RecursorSNMPAgent(const std::string& name, const std::string&
   registerCounter64Stat("udr-events", udrEventsOID);
   registerCounter64Stat("max-chain-length", maxChainLengthOID);
   registerCounter64Stat("max-chain-weight", maxChainWeightOID);
+  registerCounter64Stat("tcp-overflow", tcpOverflowOID);
+  registerCounter64Stat("ecs-missing", ecsMissingOID);
 
 #endif /* HAVE_NET_SNMP */
 }
index b46fed7684f97bc15ff696ce458a6259d19885fb..efcf432886e86612c85ed172322b0bddcfef153d 100644 (file)
@@ -1569,6 +1569,7 @@ static void registerAllStats1()
   addGetStat("max-chain-length", [] { return g_Counters.max(rec::Counter::maxChainLength); });
   addGetStat("max-chain-weight", [] { return g_Counters.max(rec::Counter::maxChainWeight); });
   addGetStat("chain-limits", [] { return g_Counters.sum(rec::Counter::chainLimits); });
+  addGetStat("ecs-missing", [] { return g_Counters.sum(rec::Counter::ecsMissingCount); });
 
   /* make sure that the ECS stats are properly initialized */
   SyncRes::clearECSStats();
index c2a745ac2d8a3d9e4b2df31429937dba3a452111..40847c26325b1e2de55a31fdb22a1152501c6cba 100644 (file)
@@ -1261,6 +1261,10 @@ const std::map<std::string, MetricDefinition> MetricDefinitionStorage::d_metrics
   {"chain-limits",
    MetricDefinition(PrometheusMetricType::counter,
                     "Chain limits reached")},
+
+  {"ecs-missing",
+   MetricDefinition(PrometheusMetricType::counter,
+                    "Number of answers where ECS info was missing")},
 };
 
 constexpr bool CHECK_PROMETHEUS_METRICS = false;