{ hosts, victoriaAddress, victoriaDefaultPort, nodeExporterPort, dockerExporterPort, cadvisorExporterPort, nginxExporterPort, ... }: { foundation.internal.monitoringService = true; services.vmagent = { enable = true; remoteWrite.url = "http://${victoriaAddress}:${toString victoriaDefaultPort}/api/v1/write"; prometheusConfig = { global = { scrape_interval = "15s"; }; scrape_configs = let exporter = job: port: { job_name = job; static_configs = map ( { name, ip }: { targets = [ "${ip}:${toString port}" ]; labels = { instance = name; }; } ) hosts; }; in [ (exporter "node" nodeExporterPort) (exporter "docker" dockerExporterPort) (exporter "cadvisor" cadvisorExporterPort) (exporter "nginx" nginxExporterPort) ]; }; }; }