From: Otto Moerbeek Date: Tue, 18 Aug 2020 12:47:08 +0000 (+0200) Subject: Export record cache mutex stats via the various channels. X-Git-Tag: rec-4.4.0-beta1~14^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=022bcc227b340fbf4202158cd2b99f2c0be7c373;p=thirdparty%2Fpdns.git Export record cache mutex stats via the various channels. --- diff --git a/pdns/rec-snmp.cc b/pdns/rec-snmp.cc index 5967410984..fd23a5ab89 100644 --- a/pdns/rec-snmp.cc +++ b/pdns/rec-snmp.cc @@ -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 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 */ } diff --git a/pdns/rec_channel_rec.cc b/pdns/rec_channel_rec.cc index 5552148f56..1c43e2798a 100644 --- a/pdns/rec_channel_rec.cc +++ b/pdns/rec_channel_rec.cc @@ -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); diff --git a/pdns/recursordist/RECURSOR-MIB.txt b/pdns/recursordist/RECURSOR-MIB.txt index 0155b5ddaa..ebb1660b4c 100644 --- a/pdns/recursordist/RECURSOR-MIB.txt +++ b/pdns/recursordist/RECURSOR-MIB.txt @@ -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" diff --git a/pdns/recursordist/docs/metrics.rst b/pdns/recursordist/docs/metrics.rst index aed4878d5b..695fc95f08 100644 --- a/pdns/recursordist/docs/metrics.rst +++ b/pdns/recursordist/docs/metrics.rst @@ -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