bool g_apiReadWrite{false};
LockGuarded<WebserverConfig> g_webserverConfig;
std::string g_apiConfigDirectory;
-static const MetricDefinitionStorage s_metricDefinitions;
static ConcurrentConnectionManager s_connManager(100);
Socket d_socket;
};
+#ifndef DISABLE_PROMETHEUS
+static const MetricDefinitionStorage s_metricDefinitions;
+
const std::map<std::string, MetricDefinition> MetricDefinitionStorage::metrics{
{ "responses", MetricDefinition(PrometheusMetricType::counter, "Number of responses received from backends") },
{ "servfail-responses", MetricDefinition(PrometheusMetricType::counter, "Number of SERVFAIL answers received from backends") },
{ "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)
{
return responseRules;
}
+#ifndef DISABLE_PROMETHEUS
template<typename T>
static void addRulesToPrometheusOutput(std::ostringstream& output, GlobalStateHolder<vector<T> >& rules)
{
resp.body = output.str();
resp.headers["Content-Type"] = "text/plain";
}
+#endif /* DISABLE_PROMETHEUS */
using namespace json11;
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);