From: Remi Gacogne Date: Mon, 8 Nov 2021 10:02:29 +0000 (+0100) Subject: dnsdist: Do not build prometheus support when DISABLE_PROMETHEUS is defined X-Git-Tag: auth-4.7.0-alpha1~103^2~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0803fe7e2e56c0746a97205b37a504d14a185a6d;p=thirdparty%2Fpdns.git dnsdist: Do not build prometheus support when DISABLE_PROMETHEUS is defined --- 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 */