summary refs log tree commit diff
path: root/modules/foundation/monitoring
diff options
context:
space:
mode:
Diffstat (limited to 'modules/foundation/monitoring')
-rw-r--r--modules/foundation/monitoring/client.nix10
-rw-r--r--modules/foundation/monitoring/default.nix2
-rw-r--r--modules/foundation/monitoring/server.nix17
3 files changed, 23 insertions, 6 deletions
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"))
         ];
     };
   };