]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
rec: Add the auth-zone-queries metric counting queries to hosted zones
authorRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 28 Feb 2018 14:46:10 +0000 (14:46 +0000)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 16 May 2018 12:15:15 +0000 (14:15 +0200)
(cherry picked from commit e9a628a297f8bd2953d42ef4d898aeba1c371ae3)

pdns/rec_channel_rec.cc
pdns/recursordist/docs/metrics.rst
pdns/syncres.cc
pdns/syncres.hh

index 7daaa998a0e03051e171b70b27e0fe5b4602a863..4108e93ecb6f69d08caf499cb3da143d348bdd52 100644 (file)
 #include "namespaces.hh"
 pthread_mutex_t g_carbon_config_lock=PTHREAD_MUTEX_INITIALIZER;
 
-map<string, const uint32_t*> d_get32bitpointers;
-map<string, const uint64_t*> d_get64bitpointers;
-map<string, const std::atomic<uint64_t>*> d_getatomics;
-map<string, function< uint64_t() > >  d_get64bitmembers;
-pthread_mutex_t d_dynmetricslock = PTHREAD_MUTEX_INITIALIZER;
-map<string, std::atomic<unsigned long>* > d_dynmetrics;
-void addGetStat(const string& name, const uint32_t* place)
+static map<string, const uint32_t*> d_get32bitpointers;
+static map<string, const uint64_t*> d_get64bitpointers;
+static map<string, const std::atomic<uint64_t>*> d_getatomics;
+static map<string, function< uint64_t() > >  d_get64bitmembers;
+static pthread_mutex_t d_dynmetricslock = PTHREAD_MUTEX_INITIALIZER;
+static map<string, std::atomic<unsigned long>* > d_dynmetrics;
+
+static void addGetStat(const string& name, const uint32_t* place)
 {
   d_get32bitpointers[name]=place;
 }
-void addGetStat(const string& name, const uint64_t* place)
-{
-  d_get64bitpointers[name]=place;
-}
 
-void addGetStat(const string& name, const std::atomic<uint64_t>* place)
+static void addGetStat(const string& name, const std::atomic<uint64_t>* place)
 {
   d_getatomics[name]=place;
 }
 
-
-void addGetStat(const string& name, function<uint64_t ()> f ) 
+static void addGetStat(const string& name, function<uint64_t ()> f )
 {
   d_get64bitmembers[name]=f;
 }
 
-
 std::atomic<unsigned long>* getDynMetric(const std::string& str)
 {
   Lock l(&d_dynmetricslock);
@@ -930,6 +925,7 @@ void registerAllStats()
   addGetStat("outgoing-timeouts", &SyncRes::s_outgoingtimeouts);
   addGetStat("outgoing4-timeouts", &SyncRes::s_outgoing4timeouts);
   addGetStat("outgoing6-timeouts", &SyncRes::s_outgoing6timeouts);
+  addGetStat("auth-zone-queries", &SyncRes::s_authzonequeries);
   addGetStat("tcp-outqueries", &SyncRes::s_tcpoutqueries);
   addGetStat("all-outqueries", &SyncRes::s_outqueries);
   addGetStat("ipv6-outqueries", &g_stats.ipv6queries);
index 63d442dd25583c99e0bca3cd4e8e5880fb093880..bf3f0cb93fd842afa05e60712e514236ce50af69 100644 (file)
@@ -144,6 +144,10 @@ auth6-answers100-1000
 ^^^^^^^^^^^^^^^^^^^^^
 counts the number of queries answered by auth6s within 1 second (4.0)
 
+auth-zone-queries
+^^^^^^^^^^^^^^^^^
+counts the number of queries to locally hosted authoritative zones (:ref:`setting-auth-zones`) since starting
+
 cache-bytes
 ^^^^^^^^^^^
 size of the cache in bytes
index f2dfd86b93c7927cda43e0edd4b0c93479040f65..ee3592efd402b2009d2d5222257bf31af2d0e93b 100644 (file)
@@ -56,6 +56,7 @@ unsigned int SyncRes::s_packetcachettl;
 unsigned int SyncRes::s_packetcacheservfailttl;
 unsigned int SyncRes::s_serverdownmaxfails;
 unsigned int SyncRes::s_serverdownthrottletime;
+std::atomic<uint64_t> SyncRes::s_authzonequeries;
 std::atomic<uint64_t> SyncRes::s_queries;
 std::atomic<uint64_t> SyncRes::s_outgoingtimeouts;
 std::atomic<uint64_t> SyncRes::s_outgoing4timeouts;
@@ -322,6 +323,7 @@ int SyncRes::AuthDomain::getRecords(const DNSName& qname, uint16_t qtype, std::v
 bool SyncRes::doOOBResolve(const AuthDomain& domain, const DNSName &qname, const QType &qtype, vector<DNSRecord>&ret, int& res)
 {
   d_authzonequeries++;
+  s_authzonequeries++;
 
   res = domain.getRecords(qname, qtype.getCode(), ret);
   return true;
index f53710f2f491535d9679ad38c19ce9ad4d4e0c63..caa6388e313c55a1417de5ff6f788340eae789d7 100644 (file)
@@ -665,6 +665,7 @@ public:
   static std::atomic<uint64_t> s_outgoing6timeouts;
   static std::atomic<uint64_t> s_throttledqueries;
   static std::atomic<uint64_t> s_dontqueries;
+  static std::atomic<uint64_t> s_authzonequeries;
   static std::atomic<uint64_t> s_outqueries;
   static std::atomic<uint64_t> s_tcpoutqueries;
   static std::atomic<uint64_t> s_nodelegated;