From c8959b4a817f5ece4b7ba451137e8fbd5e20de88 Mon Sep 17 00:00:00 2001 From: Mel Date: Mon, 6 Jan 2025 01:32:43 +0100 Subject: Add Prometheus exporter for dnsmasq Signed-off-by: Mel --- modules/dns.nix | 2 +- modules/foundation/monitoring/client.nix | 10 ++++++++++ modules/foundation/monitoring/default.nix | 2 ++ modules/foundation/monitoring/server.nix | 17 +++++++++++------ 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/modules/dns.nix b/modules/dns.nix index 63bb13c..235411d 100644 --- a/modules/dns.nix +++ b/modules/dns.nix @@ -36,7 +36,7 @@ in conf-file = "${oisd}/dnsmasq2_big.txt"; - log-queries = true; + log-queries = "extra"; }; }; } diff --git a/modules/foundation/monitoring/client.nix b/modules/foundation/monitoring/client.nix index 2b0bc84..9881f93 100644 --- a/modules/foundation/monitoring/client.nix +++ b/modules/foundation/monitoring/client.nix @@ -1,10 +1,14 @@ { + lib, + config, + services, listenAddress, nodeExporterPort, nginxExporterPort, nginxLogExporterPort, cadvisorExporterPort, + dnsmasqExporterPort, ... }: @@ -51,6 +55,12 @@ ] ++ (map vhost services); }; + + dnsmasq = lib.mkIf config.services.dnsmasq.enable { + enable = true; + port = dnsmasqExporterPort; + inherit listenAddress; + }; }; cadvisor = { diff --git a/modules/foundation/monitoring/default.nix b/modules/foundation/monitoring/default.nix index 2489948..d9bb8fc 100644 --- a/modules/foundation/monitoring/default.nix +++ b/modules/foundation/monitoring/default.nix @@ -17,6 +17,7 @@ let nginxExporterPort = 9113; nginxLogExporterPort = 9117; dockerExporterPort = 9323; + dnsmasqExporterPort = 9153; }; serverConfiguration = import ./server.nix ( @@ -29,6 +30,7 @@ let clientConfiguration = import ./client.nix ( { + inherit config lib; services = cfg.services; listenAddress = me.tailscale.ip; } diff --git a/modules/foundation/monitoring/server.nix b/modules/foundation/monitoring/server.nix index 1d1afb3..c4ce4c2 100644 --- a/modules/foundation/monitoring/server.nix +++ b/modules/foundation/monitoring/server.nix @@ -6,6 +6,7 @@ cadvisorExporterPort, nginxExporterPort, nginxLogExporterPort, + dnsmasqExporterPort, ... }: @@ -23,7 +24,7 @@ scrape_configs = let - exporter = job: ports: { + exporter = job: ports: filter: { job_name = job; static_configs = map ( { name, ip }: @@ -33,17 +34,21 @@ instance = name; }; } - ) hosts; + ) (builtins.filter filter hosts); }; + + all = x: true; + is = name: host: host.name == name; in [ - (exporter "node" [ nodeExporterPort ]) - (exporter "docker" [ dockerExporterPort ]) - (exporter "cadvisor" [ cadvisorExporterPort ]) + (exporter "node" [ nodeExporterPort ] all) + (exporter "docker" [ dockerExporterPort ] all) + (exporter "cadvisor" [ cadvisorExporterPort ] all) (exporter "nginx" [ nginxExporterPort nginxLogExporterPort - ]) + ] all) + (exporter "dnsmasq" [ dnsmasqExporterPort ] (is "corsac")) ]; }; }; -- cgit 1.4.1