summary refs log tree commit diff
diff options
context:
space:
mode:
-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; };
+              });
+            }
+          ];
         };
       };
     })