]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Fix the latency-count metric
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 14 Feb 2022 16:30:03 +0000 (17:30 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 14 Feb 2022 16:30:03 +0000 (17:30 +0100)
pdns/dnsdist-web.cc
pdns/dnsdist.cc
pdns/dnsdist.hh
pdns/dnsdistdist/test-dnsdisttcp_cc.cc

index eeb90dd1d3d12acd5770377e5ded8560771b25b2..6e9afc9f2a94d7ad17ff1c79c2906cec33b0ffbd 100644 (file)
@@ -483,7 +483,7 @@ static void handlePrometheus(const YaHTTP::Request& req, YaHTTP::Response& resp)
   latency_amounts += g_stats.latencySlow; // Should be the same as latency_count
   output << "dnsdist_latency_bucket{le=\"+Inf\"} " << latency_amounts << "\n";
   output << "dnsdist_latency_sum " << g_stats.latencySum << "\n";
-  output << "dnsdist_latency_count " << getLatencyCount(std::string()) << "\n";
+  output << "dnsdist_latency_count " << g_stats.latencyCount << "\n";
 
   auto states = g_dstates.getLocal();
   const string statesbase = "dnsdist_server_";
index 3260371e8f201eb692c2bae1fb601a661e8ad1ed..7694bb41d6ca83c289526665b340699ea4477fa3 100644 (file)
@@ -230,6 +230,7 @@ void doLatencyStats(double udiff)
   else if(udiff < 1000000) ++g_stats.latency100_1000;
   else ++g_stats.latencySlow;
   g_stats.latencySum += udiff / 1000;
+  ++g_stats.latencyCount;
 
   auto doAvg = [](double& var, double n, double weight) {
     var = (weight -1) * var/weight + n/weight;
@@ -2784,8 +2785,3 @@ int main(int argc, char** argv)
 #endif
   }
 }
-
-uint64_t getLatencyCount(const std::string&)
-{
-    return g_stats.responses + g_stats.selfAnswered + g_stats.cacheHits;
-}
index 028f1a6bf87c11edc56cf70e3a4625d1b749a5f6..22d583d8f42ba5bddd8eb55d6482c10c6e2f0a62 100644 (file)
@@ -329,8 +329,6 @@ extern GlobalStateHolder<NetmaskTree<DynBlock, AddressAndPortRange>> g_dynblockN
 
 extern vector<pair<struct timeval, std::string> > g_confDelta;
 
-extern uint64_t getLatencyCount(const std::string&);
-
 using pdns::stat_t;
 
 struct DNSDistStats
@@ -359,7 +357,7 @@ struct DNSDistStats
   stat_t noPolicy{0};
   stat_t cacheHits{0};
   stat_t cacheMisses{0};
-  stat_t latency0_1{0}, latency1_10{0}, latency10_50{0}, latency50_100{0}, latency100_1000{0}, latencySlow{0}, latencySum{0};
+  stat_t latency0_1{0}, latency1_10{0}, latency10_50{0}, latency50_100{0}, latency100_1000{0}, latencySlow{0}, latencySum{0}, latencyCount{0};
   stat_t securityStatus{0};
   stat_t dohQueryPipeFull{0};
   stat_t dohResponsePipeFull{0};
@@ -437,7 +435,7 @@ struct DNSDistStats
     {"tcp-cross-protocol-response-pipe-full", &tcpCrossProtocolResponsePipeFull},
     // Latency histogram
     {"latency-sum", &latencySum},
-    {"latency-count", getLatencyCount},
+    {"latency-count", &latencyCount},
   };
 };
 
index 9b81805ca35f9f7d05a0317e29da7d2abba3c673..9198955bfea7d86f3ee71865681db0c785bbf8bd 100644 (file)
@@ -58,11 +58,6 @@ uint64_t uptimeOfProcess(const std::string& str)
   return 0;
 }
 
-uint64_t getLatencyCount(const std::string&)
-{
-  return 0;
-}
-
 void handleResponseSent(const IDState& ids, double udiff, const ComboAddress& client, const ComboAddress& backend, unsigned int size, const dnsheader& cleartextDH, dnsdist::Protocol protocol)
 {
 }