]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Export record cache mutex stats via the various channels.
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 18 Aug 2020 12:47:08 +0000 (14:47 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 18 Aug 2020 12:47:08 +0000 (14:47 +0200)
pdns/rec-snmp.cc
pdns/rec_channel_rec.cc
pdns/recursordist/RECURSOR-MIB.txt
pdns/recursordist/docs/metrics.rst

index 596741098486e302e78b6b0e2540acfb142c38c3..fd23a5ab89c2bcf15c56e09e2c680701a6bec6be 100644 (file)
@@ -117,6 +117,8 @@ static const oid specialMemoryUsageOID[] = { RECURSOR_STATS_OID, 98 };
 static const oid rebalancedQueriesOID[] = { RECURSOR_STATS_OID, 99 };
 static const oid qnameMinFallbackSuccessOID[] = { RECURSOR_STATS_OID, 100 };
 static const oid proxyProtocolInvalidOID[] = { RECURSOR_STATS_OID, 101 };
+static const oid recordCacheContendedOID[] = { RECURSOR_STATS_OID, 102 };
+static const oid recordCacheAcquiredOID[] = { RECURSOR_STATS_OID, 103 };
 
 static std::unordered_map<oid, std::string> s_statsMap;
 
@@ -327,5 +329,7 @@ RecursorSNMPAgent::RecursorSNMPAgent(const std::string& name, const std::string&
   registerCounter64Stat("special-memory-usage", specialMemoryUsageOID, OID_LENGTH(specialMemoryUsageOID));
   registerCounter64Stat("rebalanced-queries", rebalancedQueriesOID, OID_LENGTH(rebalancedQueriesOID));
   registerCounter64Stat("proxy-protocol-invalid", proxyProtocolInvalidOID, OID_LENGTH(proxyProtocolInvalidOID));
+  registerCounter64Stat("record-cache-contended", recordCacheContendedOID, OID_LENGTH(recordCacheContendedOID));
+  registerCounter64Stat("record-cache-acquired", recordCacheAcquiredOID, OID_LENGTH(recordCacheAcquiredOID));
 #endif /* HAVE_NET_SNMP */
 }
index 5552148f56b3a27bdfe7ee9a38c232fa10a97cd6..1c43e2798af98713f8b056a72636781f9bf78ab4 100644 (file)
@@ -1023,6 +1023,8 @@ void registerAllStats()
   addGetStat("max-cache-entries", []() { return g_maxCacheEntries.load(); });
   addGetStat("max-packetcache-entries", []() { return g_maxPacketCacheEntries.load();}); 
   addGetStat("cache-bytes", doGetCacheBytes); 
+  addGetStat("record-cache-contended", []() { return s_RC->stats().first;});
+  addGetStat("record-cache-acquired", []() { return s_RC->stats().second;});
   
   addGetStat("packetcache-hits", doGetPacketCacheHits);
   addGetStat("packetcache-misses", doGetPacketCacheMisses); 
index 0155b5ddaa1fd954dd5ecafc8458b2caeecca4b6..ebb1660b4c8b42a61d3002430fecd3d92dbcad7e 100644 (file)
@@ -847,6 +847,22 @@ proxyProtocolInvalid OBJECT-TYPE
         "Number of invalid proxy protocol headers received"
     ::= { stats 101 }
 
+recordCacheContended OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of contended record cache mutex acquisitions"
+    ::= { stats 102 }
+
+recordCacheAcquired OBJECT-TYPE
+    SYNTAX Counter64
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Number of record cache mutex acquisitions"
+    ::= { stats 103 }
+
 ---
 --- Traps / Notifications
 ---
@@ -991,7 +1007,9 @@ recGroup OBJECT-GROUP
         rebalancedQueries,
         trapReason,
         qnameMinFallbackSuccess,
-        proxyProtocolInvalid
+        proxyProtocolInvalid,
+        recordCacheContended,
+        recordCacheAcquired
     }
     STATUS current
     DESCRIPTION "Objects conformance group for PowerDNS Recursor"
index aed4878d5b23724fa146a24028770f981af1ebaa..695fc95f0807f35ab8769bf1a564f0b95ec191a6 100644 (file)
@@ -436,6 +436,18 @@ rebalanced-queries
 
 number of queries balanced to a different worker thread because the first selected one was above the target load configured with 'distribution-load-factor'
 
+record-cache-contended
+^^^^^^^^^^^^^^^^^^^^^^
+.. versionadded:: 4.4.0
+
+number of contented record cache mutex acquisitions
+
+record-cache-acquired
+^^^^^^^^^^^^^^^^^^^^^
+.. versionadded:: 4.4.0
+number of record cache mutex acquisitions
+
+
 resource-limits
 ^^^^^^^^^^^^^^^
 counts number of queries that could not be   performed because of resource limits