]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Convert SNMP code to structured logging
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 23 Dec 2025 15:32:18 +0000 (16:32 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 19 Jan 2026 10:00:57 +0000 (11:00 +0100)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsdistdist/dnsdist-snmp.cc

index 72d67794fee3c95806015cfe10ec9ca6a9b125b9..1a5ebd705c9b4ffb25f308b35036fe9ebf2ed737 100644 (file)
@@ -105,12 +105,14 @@ static int handleCounter64Stats(netsnmp_mib_handler* handler,
 static void registerCounter64Stat(const char* name, const OIDStat& statOID, pdns::stat_t* ptr)
 {
   if (statOID.size() != OID_LENGTH(queriesOID)) {
-    errlog("Invalid OID for SNMP Counter64 statistic %s", name);
+    SLOG(errlog("Invalid OID for SNMP Counter64 statistic %s", name),
+         dnsdist::logging::getTopLogger()->withName("snmp-agent")->info(Logr::Error, "Invalid OID for SNMP Counter64 metric", "metric_name", Logging::Loggable(name)));
     return;
   }
 
   if (s_statsMap.find(statOID.at(statOID.size() - 1)) != s_statsMap.end()) {
-    errlog("OID for SNMP Counter64 statistic %s has already been registered", name);
+    SLOG(errlog("OID for SNMP Counter64 statistic %s has already been registered", name),
+         dnsdist::logging::getTopLogger()->withName("snmp-agent")->info(Logr::Error, "OID for SNMP Counter64 metric has already been registered", "metric_name", Logging::Loggable(name)));
     return;
   }
 
@@ -157,12 +159,14 @@ static int handleFloatStats(netsnmp_mib_handler* handler,
 static void registerFloatStat(const char* name, const OIDStat& statOID, pdns::stat_double_t* ptr)
 {
   if (statOID.size() != OID_LENGTH(queriesOID)) {
-    errlog("Invalid OID for SNMP Float statistic %s", name);
+    SLOG(errlog("Invalid OID for SNMP Float statistic %s", name),
+         dnsdist::logging::getTopLogger()->withName("snmp-agent")->info(Logr::Error, "Invalid OID for SNMP Float metric", "metric_name", Logging::Loggable(name)));
     return;
   }
 
   if (s_statsMap.find(statOID.at(statOID.size() - 1)) != s_statsMap.end()) {
-    errlog("OID for SNMP Float statistic %s has already been registered", name);
+    SLOG(errlog("OID for SNMP Float statistic %s has already been registered", name),
+         dnsdist::logging::getTopLogger()->withName("snmp-agent")->info(Logr::Error, "OID for SNMP Float metric has already been registered", "metric_name", Logging::Loggable(name)));
     return;
   }
 
@@ -202,12 +206,14 @@ static int handleGauge64Stats(netsnmp_mib_handler* handler,
 static void registerGauge64Stat(const char* name, const OIDStat& statOID, const dnsdist::metrics::Stats::statfunction_t& ptr)
 {
   if (statOID.size() != OID_LENGTH(queriesOID)) {
-    errlog("Invalid OID for SNMP Gauge64 statistic %s", name);
+    SLOG(errlog("Invalid OID for SNMP Gauge64 statistic %s", name),
+         dnsdist::logging::getTopLogger()->withName("snmp-agent")->info(Logr::Error, "Invalid OID for SNMP Gauge64 metric", "metric_name", Logging::Loggable(name)));
     return;
   }
 
   if (s_statsMap.find(statOID.at(statOID.size() - 1)) != s_statsMap.end()) {
-    errlog("OID for SNMP Gauge64 statistic %s has already been registered", name);
+    SLOG(errlog("OID for SNMP Gauge64 statistic %s has already been registered", name),
+         dnsdist::logging::getTopLogger()->withName("snmp-agent")->info(Logr::Error, "OID for SNMP Gauge64 metric has already been registered", "metric_name", Logging::Loggable(name)));
     return;
   }
 
@@ -568,7 +574,6 @@ DNSDistSNMPAgent::DNSDistSNMPAgent(const std::string& name, const std::string& d
   SNMPAgent(name, daemonSocket)
 {
 #ifdef HAVE_NET_SNMP
-
   registerCounter64Stat("queries", queriesOID, &dnsdist::metrics::g_stats.queries);
   registerCounter64Stat("responses", responsesOID, &dnsdist::metrics::g_stats.responses);
   registerCounter64Stat("servfailResponses", servfailResponsesOID, &dnsdist::metrics::g_stats.servfailResponses);