summary refs log tree commit diff
path: root/modules
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2024-12-21 17:50:21 +0100
committerMel <einebeere@gmail.com>2024-12-21 17:50:21 +0100
commitf42c1674aefaaa3fe155f038dd5cc83c6113d5ce (patch)
tree2c05a27c4e9131989be71373331c3fbc02a82c0a /modules
parentbb5f031130a62825911657ec962f3c51d9ef8555 (diff)
downloadnetwork-f42c1674aefaaa3fe155f038dd5cc83c6113d5ce.tar.zst
network-f42c1674aefaaa3fe155f038dd5cc83c6113d5ce.zip
Export and scrape Docker daemon metrics
Signed-off-by: Mel <einebeere@gmail.com>
Diffstat (limited to 'modules')
-rw-r--r--modules/common.nix4
-rw-r--r--modules/foundation/monitoring.nix26
2 files changed, 23 insertions, 7 deletions
diff --git a/modules/common.nix b/modules/common.nix
index f33e2ba..2c183ef 100644
--- a/modules/common.nix
+++ b/modules/common.nix
@@ -41,6 +41,10 @@
     docker = {
       enable = true;
       autoPrune.enable = true;
+
+      daemon.settings = {
+        metrics-addr = "${me.tailscale.ip}:9323";
+      };
     };
     oci-containers.backend = "docker";
   };
diff --git a/modules/foundation/monitoring.nix b/modules/foundation/monitoring.nix
index 0f367d9..4f06561 100644
--- a/modules/foundation/monitoring.nix
+++ b/modules/foundation/monitoring.nix
@@ -7,6 +7,7 @@ let
 
   victoriaDefaultPort = 8428;
   nodeExporterPort = 9001;
+  dockerExporterPort = 9323;
 in
 {
   imports = [ ../../services/monitoring/wrapper.nix ];
@@ -44,13 +45,24 @@ in
             scrape_interval = "15s";
           };
 
-          scrape_configs = [{
-            job_name = "node";
-            static_configs = map ({ name, ip }: {
-              targets = [ "${ip}:${toString nodeExporterPort}" ];
-              labels = { instance = name; };
-            }) cfg.server.hosts;
-          }];
+          scrape_configs = let
+            everyHost = f: map f cfg.server.hosts;
+          in [
+            {
+              job_name = "node";
+              static_configs = everyHost ({ name, ip }: {
+                targets = [ "${ip}:${toString nodeExporterPort}" ];
+                labels = { instance = name; };
+              });
+            }
+            {
+              job_name = "docker";
+              static_configs = everyHost ({ name, ip }: {
+                targets = [ "${ip}:${toString dockerExporterPort}" ];
+                labels = { instance = name; };
+              });
+            }
+          ];
         };
       };
     })