]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
rec: Add IPv6 UDP error metrics
authorRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 27 Oct 2021 16:50:04 +0000 (18:50 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 3 Nov 2021 14:20:24 +0000 (15:20 +0100)
pdns/rec-snmp.cc
pdns/rec_channel_rec.cc
pdns/recursordist/RECURSOR-MIB.txt
pdns/ws-recursor.cc

index 198db29997b84bba22d109075c62af366449dae5..3bb7783a3bebf796efa109204a5a8ca70bfc827e 100644 (file)
@@ -137,6 +137,11 @@ static const oid almostExpiredRun[] = {RECURSOR_STATS_OID, 116};
 static const oid almostExpiredExceptions[] = {RECURSOR_STATS_OID, 117};
 #ifdef __linux__
 static const oid udpInCsumErrorsOID[] = {RECURSOR_STATS_OID, 118};
+static const oid udp6RecvbufErrorsOID[] = {RECURSOR_STATS_OID, 119};
+static const oid udp6SndbufErrorsOID[] = {RECURSOR_STATS_OID, 120};
+static const oid udp6NoportErrorsOID[] = {RECURSOR_STATS_OID, 121};
+static const oid udp6InErrorsOID[] = {RECURSOR_STATS_OID, 122};
+static const oid udp6InCsumErrorsOID[] = {RECURSOR_STATS_OID, 123};
 #endif /* __linux__ */
 
 static std::unordered_map<oid, std::string> s_statsMap;
@@ -321,6 +326,11 @@ RecursorSNMPAgent::RecursorSNMPAgent(const std::string& name, const std::string&
   registerCounter64Stat("udp-noport-errors", udpNoportErrorsOID, OID_LENGTH(udpNoportErrorsOID));
   registerCounter64Stat("udp-in-errors", udpinErrorsOID, OID_LENGTH(udpinErrorsOID));
   registerCounter64Stat("udp-in-csums-errors", udpInCsumErrorsOID, OID_LENGTH(udpInCsumErrorsOID));
+  registerCounter64Stat("udp6-recvbuf-errors", udp6RecvbufErrorsOID, OID_LENGTH(udp6RecvbufErrorsOID));
+  registerCounter64Stat("udp6-sndbuf-errors", udp6SndbufErrorsOID, OID_LENGTH(udp6SndbufErrorsOID));
+  registerCounter64Stat("udp6-noport-errors", udp6NoportErrorsOID, OID_LENGTH(udp6NoportErrorsOID));
+  registerCounter64Stat("udp6-in-errors", udp6InErrorsOID, OID_LENGTH(udp6InErrorsOID));
+  registerCounter64Stat("udp6-in-csums-errors", udp6InCsumErrorsOID, OID_LENGTH(udp6InCsumErrorsOID));
 #endif /* __linux__ */
   registerCounter64Stat("edns-ping-matches", ednsPingMatchesOID, OID_LENGTH(ednsPingMatchesOID));
   registerCounter64Stat("edns-ping-mismatches", ednsPingMismatchesOID, OID_LENGTH(ednsPingMismatchesOID));
index ee40d1741750ceaab175c03ba51fd2a7a6b81cb8..ea3e3caf6887c1791ba94a1392a73a10777c5628 100644 (file)
@@ -1304,6 +1304,11 @@ static void registerAllStats1()
   addGetStat("udp-noport-errors", [] { return udpErrorStats("udp-noport-errors"); });
   addGetStat("udp-in-errors", [] { return udpErrorStats("udp-in-errors"); });
   addGetStat("udp-in-csum-errors", [] { return udpErrorStats("udp-in-csum-errors"); });
+  addGetStat("udp6-recvbuf-errors", [] { return udp6ErrorStats("udp6-recvbuf-errors"); });
+  addGetStat("udp6-sndbuf-errors", [] { return udp6ErrorStats("udp6-sndbuf-errors"); });
+  addGetStat("udp6-noport-errors", [] { return udp6ErrorStats("udp6-noport-errors"); });
+  addGetStat("udp6-in-errors", [] { return udp6ErrorStats("udp6-in-errors"); });
+  addGetStat("udp6-in-csum-errors", [] { return udp6ErrorStats("udp6-in-csum-errors"); });
 #endif
 
   addGetStat("edns-ping-matches", &g_stats.ednsPingMatches);
index a6ea79c921cfa5c796cfdbd7f1872d3530abdfd1..d9fea57ec79314bf82f736d97c60fa719229a7c9 100644 (file)
@@ -40,7 +40,7 @@ rec MODULE-IDENTITY
     DESCRIPTION "Added almost expired task metrics."
 
     REVISION "202110270000Z"
-    DESCRIPTION "Added udpInCsumErrors metric."
+    DESCRIPTION "Added more UDP errors metric."
 
     ::= { powerdns 2 }
 
@@ -992,6 +992,46 @@ udpInCsumErrors OBJECT-TYPE
         "Number of UDP in checksum errors (Linux only)"
     ::= { stats 118 }
 
+udp6RecvbufErrors OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of UDP6 recvbuf errors (Linux only)"
+    ::= { stats 119 }
+
+udp6SndbufErrors OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of UDP6 sndbuf errors (Linux only)"
+    ::= { stats 120 }
+
+udp6NoportErrors OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of UDP6 noport errors (Linux only)"
+    ::= { stats 121 }
+
+udp6inErrors OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of UDP6 in errors (Linux only)"
+    ::= { stats 122 }
+
+udp6InCsumErrors OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of UDP6 in checksum errors (Linux only)"
+    ::= { stats 123 }
+
 ---
 --- Traps / Notifications
 ---
@@ -1157,7 +1197,12 @@ recGroup OBJECT-GROUP
         almostExpiredPushed,
         almostExpiredRun,
         almostExpiredExceptions,
-        udpInCsumErrors
+        udpInCsumErrors,
+        udp6RecvbufErrors,
+        udp6SndbufErrors,
+        udp6NoportErrors,
+        udp6inErrors,
+        udp6InCsumErrors
     }
     STATUS current
     DESCRIPTION "Objects conformance group for PowerDNS Recursor"
index bcfd0e39f836f716609a2fd646ef8d3f26a865af..8c1d11dd3ea7bbb64fd79412b97ca3e89eda4d4e 100644 (file)
@@ -899,6 +899,21 @@ const std::map<std::string, MetricDefinition> MetricDefinitionStorage::d_metrics
   {"udp-in-csum-errors",
    MetricDefinition(PrometheusMetricType::counter,
                     "From /proc/net/snmp InCsumErrors")},
+  {"udp6-in-errors",
+   MetricDefinition(PrometheusMetricType::counter,
+                    "From /proc/net/snmp6 InErrors")},
+  {"udp6-noport-errors",
+   MetricDefinition(PrometheusMetricType::counter,
+                    "From /proc/net/snmp6 NoPorts")},
+  {"udp6-recvbuf-errors",
+   MetricDefinition(PrometheusMetricType::counter,
+                    "From /proc/net/snmp6 RcvbufErrors")},
+  {"udp6-sndbuf-errors",
+   MetricDefinition(PrometheusMetricType::counter,
+                    "From /proc/net/snmp6 SndbufErrors")},
+  {"udp6-in-csum-errors",
+   MetricDefinition(PrometheusMetricType::counter,
+                    "From /proc/net/snmp6 InCsumErrors")},
 
   {"cpu-iowait",
    MetricDefinition(PrometheusMetricType::counter,