]> granicus.if.org Git - pdns/commitdiff
add variable-responses metric to pdns_recursor
authorbert hubert <bert.hubert@powerdns.com>
Sun, 7 Oct 2018 14:49:10 +0000 (16:49 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 10 Jan 2019 09:55:59 +0000 (10:55 +0100)
pdns/pdns_recursor.cc
pdns/rec_channel_rec.cc
pdns/syncres.hh

index c41287bad6eb9cb3d80d3adf39a71c73eaccdf91..baa655025cb58d15aa77e10d35ea4dec5a45ccfb 100644 (file)
@@ -1567,6 +1567,9 @@ static void startDoResolve(void *p)
       if(sendmsg(dc->d_socket, &msgh, 0) < 0 && g_logCommonErrors) 
         g_log<<Logger::Warning<<"Sending UDP reply to client "<<dc->getRemote()<<" failed with: "<<strerror(errno)<<endl;
 
+      if(variableAnswer || sr.wasVariable()) {
+       g_stats.variableResponses++;
+      }
       if(!SyncRes::s_nopacketcache && !variableAnswer && !sr.wasVariable() ) {
         t_packetCache->insertResponsePacket(dc->d_tag, dc->d_qhash, std::move(dc->d_query), dc->d_mdp.d_qname, dc->d_mdp.d_qtype, dc->d_mdp.d_qclass,
                                             string((const char*)&*packet.begin(), packet.size()),
index 80aec94e20898466863362817e72bf109b44ba88..0259c6875832a926e240e8f58c16b257765ff087 100644 (file)
@@ -1013,9 +1013,12 @@ void registerAllStats()
   addGetStat("edns-ping-matches", &g_stats.ednsPingMatches);
   addGetStat("edns-ping-mismatches", &g_stats.ednsPingMismatches);
   addGetStat("dnssec-queries", &g_stats.dnssecQueries);
+
   addGetStat("dnssec-authentic-data-queries", &g_stats.dnssecAuthenticDataQueries);
   addGetStat("dnssec-check-disabled-queries", &g_stats.dnssecCheckDisabledQueries);
 
+  addGetStat("variable-responses", &g_stats.variableResponses);
+
   addGetStat("noping-outqueries", &g_stats.noPingOutQueries);
   addGetStat("noedns-outqueries", &g_stats.noEdnsOutQueries);
 
index 3dd579092e46e6349d62853d936085d107afa849..ae8f274f0f833363206f1e1109f134ecf85e6731 100644 (file)
@@ -932,6 +932,7 @@ struct RecursorStats
   std::atomic<uint64_t> dnssecQueries;
   std::atomic<uint64_t> dnssecAuthenticDataQueries;
   std::atomic<uint64_t> dnssecCheckDisabledQueries;
+  std::atomic<uint64_t> variableResponses;
   unsigned int maxMThreadStackUsage;
   std::atomic<uint64_t> dnssecValidations; // should be the sum of all dnssecResult* stats
   std::map<vState, std::atomic<uint64_t> > dnssecResults;