mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-10 04:49:19 -08:00
46 lines
1.2 KiB
Nix
46 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" ];}];
|
|
}
|
|
] ++ 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;
|
|
};
|
|
}
|
|
|