From 0803fe7e2e56c0746a97205b37a504d14a185a6d Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Mon, 8 Nov 2021 11:02:29 +0100 Subject: [PATCH] dnsdist: Do not build prometheus support when DISABLE_PROMETHEUS is defined --- pdns/dnsdist-web.cc | 9 ++++++++- pdns/dnsdistdist/dnsdist-prometheus.hh | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pdns/dnsdist-web.cc b/pdns/dnsdist-web.cc index 81c81d88bc..e3cb116d6e 100644 --- a/pdns/dnsdist-web.cc +++ b/pdns/dnsdist-web.cc @@ -60,7 +60,6 @@ struct WebserverConfig bool g_apiReadWrite{false}; LockGuarded g_webserverConfig; std::string g_apiConfigDirectory; -static const MetricDefinitionStorage s_metricDefinitions; static ConcurrentConnectionManager s_connManager(100); @@ -131,6 +130,9 @@ private: Socket d_socket; }; +#ifndef DISABLE_PROMETHEUS +static const MetricDefinitionStorage s_metricDefinitions; + const std::map MetricDefinitionStorage::metrics{ { "responses", MetricDefinition(PrometheusMetricType::counter, "Number of responses received from backends") }, { "servfail-responses", MetricDefinition(PrometheusMetricType::counter, "Number of SERVFAIL answers received from backends") }, @@ -190,6 +192,7 @@ const std::map MetricDefinitionStorage::metrics{ { "tcp-listen-overflows", MetricDefinition(PrometheusMetricType::counter, "From /proc/net/netstat ListenOverflows") }, { "proxy-protocol-invalid", MetricDefinition(PrometheusMetricType::counter, "Number of queries dropped because of an invalid Proxy Protocol header") }, }; +#endif /* DISABLE_PROMETHEUS */ static bool apiWriteConfigFile(const string& filebasename, const string& content) { @@ -407,6 +410,7 @@ static json11::Json::array someResponseRulesToJson(GlobalStateHolder>* return responseRules; } +#ifndef DISABLE_PROMETHEUS template static void addRulesToPrometheusOutput(std::ostringstream& output, GlobalStateHolder >& rules) { @@ -810,6 +814,7 @@ static void handlePrometheus(const YaHTTP::Request& req, YaHTTP::Response& resp) resp.body = output.str(); resp.headers["Content-Type"] = "text/plain"; } +#endif /* DISABLE_PROMETHEUS */ using namespace json11; @@ -1402,7 +1407,9 @@ static void handleBuiltInFiles(const YaHTTP::Request& req, YaHTTP::Response& res void registerBuiltInWebHandlers() { registerWebHandler("/jsonstat", handleJSONStats); +#ifndef DISABLE_PROMETHEUS registerWebHandler("/metrics", handlePrometheus); +#endif /* DISABLE_PROMETHEUS */ registerWebHandler("/api/v1/servers/localhost", handleStats); registerWebHandler("/api/v1/servers/localhost/pool", handlePoolStats); registerWebHandler("/api/v1/servers/localhost/statistics", handleStatsOnly); diff --git a/pdns/dnsdistdist/dnsdist-prometheus.hh b/pdns/dnsdistdist/dnsdist-prometheus.hh index a64b90495e..43bd6b3d50 100644 --- a/pdns/dnsdistdist/dnsdist-prometheus.hh +++ b/pdns/dnsdistdist/dnsdist-prometheus.hh @@ -21,6 +21,7 @@ */ #pragma once +#ifndef DISABLE_PROMETHEUS // Metric types for Prometheus enum class PrometheusMetricType: int { counter = 1, @@ -70,3 +71,4 @@ struct MetricDefinitionStorage { static const std::map metrics; }; +#endif /* DISABLE_PROMETHEUS */ -- 2.47.2