mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-10 04:49:19 -08:00
40 lines
1.2 KiB
Nix
40 lines
1.2 KiB
Nix
{ config, hosts, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
prom_configs =
|
|
(mapAttrs (hostName: host: host.config.services.prometheus.exporters.node)
|
|
(filterAttrs
|
|
(_: host: host.config.services.prometheus.exporters.node.enable)
|
|
hosts));
|
|
nd_configs = (mapAttrs (hostName: host: host.config.services.netdata)
|
|
(filterAttrs (_: host: host.config.services.netdata.enable) hosts));
|
|
in {
|
|
services.prometheus = {
|
|
enable = true;
|
|
scrapeConfigs = [
|
|
{
|
|
job_name = "boline";
|
|
static_configs = [{ targets = [ "boline.net.kittywit.ch:8002" ]; }];
|
|
}
|
|
{
|
|
job_name = "samhain-vm";
|
|
metrics_path = "/metrics";
|
|
static_configs = [{ targets = [ "samhain.net.kittywit.ch:10445" ]; }];
|
|
}
|
|
] ++ mapAttrsToList (hostName: prom: {
|
|
job_name = "${hostName}-nd";
|
|
metrics_path = "/api/v1/allmetrics";
|
|
honor_labels = true;
|
|
params = { format = [ "prometheus" ]; };
|
|
static_configs = [{ targets = [ "${hostName}.net.kittywit.ch:19999" ]; }];
|
|
}) nd_configs ++ mapAttrsToList (hostName: prom: {
|
|
job_name = hostName;
|
|
static_configs = [{
|
|
targets = [ "${hostName}.net.kittywit.ch:${toString prom.port}" ];
|
|
}];
|
|
}) prom_configs;
|
|
};
|
|
}
|
|
|