diff --git a/modules/system/docker/default.nix b/modules/system/docker/default.nix index f3f5683..af1f368 100644 --- a/modules/system/docker/default.nix +++ b/modules/system/docker/default.nix @@ -18,5 +18,33 @@ in enable = true; autoPrune.enable = true; }; + + services.cadvisor.enable = config.services.prometheus.enable; + + services.prometheus = { + scrapeConfigs = [ + { + job_name = "docker"; + static_configs = [ + { + targets = [ "127.0.0.1:${toString config.services.cadvisor.port}" ]; + labels = { + instance = config.networking.hostName; + }; + } + ]; + } + ]; + }; + # dashboard untested + services.grafana.provision = { + dashboards.settings.providers = [ + { + name = "Docker"; + options.path = pkgs.grafana-dashboards.cadvisor; + disableDeletion = true; + } + ]; + }; }; } diff --git a/pkgs/grafana-dashboards/default.nix b/pkgs/grafana-dashboards/default.nix index 601f631..54f592b 100644 --- a/pkgs/grafana-dashboards/default.nix +++ b/pkgs/grafana-dashboards/default.nix @@ -67,6 +67,13 @@ in src = ./navidrome.json; # sadly data source is not detected }); + cadvisor = buildGrafanaDashboard { + id = 10619; + pname = "cadvisor"; + version = "1"; + hash = "sha256-T1HqWbwt+i/Wa+Y2B7hclaCijGxZF5QI38aPcXjk9y0="; + }; + loki = (buildGrafanaDashboard { id = 13407; pname = "loki";