40 lines
1.1 KiB
Nix
40 lines
1.1 KiB
Nix
# Portions of this file are sourced from
|
|
# https://github.com/NickCao/flakes/blob/3b03efb676ea602575c916b2b8bc9d9cd13b0d85/modules/metrics/default.nix
|
|
{ config, ... }:
|
|
{
|
|
sops.secrets."prometheus/metrics" = {
|
|
sopsFile = config.sops.secretFiles.get "common.yaml";
|
|
restartUnits = [ "caddy.service" ];
|
|
};
|
|
|
|
systemd.services.caddy.serviceConfig = {
|
|
EnvironmentFile = [ config.sops.secrets."prometheus/metrics".path ];
|
|
};
|
|
|
|
services.prometheus.exporters.node = {
|
|
enable = true;
|
|
listenAddress = "127.0.0.1";
|
|
port = config.networking.ports.prometheus-node-exporter;
|
|
enabledCollectors = [ "systemd" ];
|
|
disabledCollectors = [ "arp" ];
|
|
};
|
|
|
|
services.caddy.virtualHosts."${config.networking.fqdn}" = {
|
|
extraConfig = with config.services.prometheus.exporters.node; ''
|
|
route /metrics {
|
|
basic_auth {
|
|
prometheus {$PROM_PASSWD}
|
|
}
|
|
reverse_proxy ${listenAddress}:${toString port}
|
|
}
|
|
|
|
route /caddy {
|
|
basic_auth {
|
|
prometheus {$PROM_PASSWD}
|
|
}
|
|
metrics
|
|
}
|
|
'';
|
|
};
|
|
}
|