From f42c1674aefaaa3fe155f038dd5cc83c6113d5ce Mon Sep 17 00:00:00 2001 From: Mel Date: Sat, 21 Dec 2024 17:50:21 +0100 Subject: Export and scrape Docker daemon metrics Signed-off-by: Mel --- modules/common.nix | 4 ++++ modules/foundation/monitoring.nix | 26 +++++++++++++++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) (limited to 'modules') 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; }; + }); + } + ]; }; }; }) -- cgit 1.4.1