52 lines
1.6 KiB
Nix
52 lines
1.6 KiB
Nix
{ pkgs, lib, config, values, ... }: let
|
|
cfg = config.services.prometheus;
|
|
in {
|
|
sops.secrets = {
|
|
"keys/postgres/postgres_exporter_env" = {};
|
|
"keys/postgres/postgres_exporter_knakelibrak_env" = {};
|
|
};
|
|
|
|
services.prometheus = {
|
|
scrapeConfigs = [
|
|
{
|
|
job_name = "postgres";
|
|
scrape_interval = "15s";
|
|
static_configs = [{
|
|
targets = [ "localhost:${toString cfg.exporters.postgres.port}" ];
|
|
labels = {
|
|
server = "bicep";
|
|
};
|
|
}];
|
|
}
|
|
{
|
|
job_name = "postgres-knakelibrak";
|
|
scrape_interval = "15s";
|
|
static_configs = [{
|
|
targets = [ "localhost:${toString (cfg.exporters.postgres.port + 1)}" ];
|
|
labels = {
|
|
server = "knakelibrak";
|
|
};
|
|
}];
|
|
}
|
|
];
|
|
|
|
exporters.postgres = {
|
|
enable = true;
|
|
extraFlags = [ "--auto-discover-databases" ];
|
|
environmentFile = config.sops.secrets."keys/postgres/postgres_exporter_env".path;
|
|
};
|
|
};
|
|
|
|
systemd.services.prometheus-postgres-exporter-knakelibrak.serviceConfig = let
|
|
localCfg = config.services.prometheus.exporters.postgres;
|
|
in lib.recursiveUpdate config.systemd.services.prometheus-postgres-exporter.serviceConfig {
|
|
EnvironmentFile = config.sops.secrets."keys/postgres/postgres_exporter_knakelibrak_env".path;
|
|
ExecStart = ''
|
|
${pkgs.prometheus-postgres-exporter}/bin/postgres_exporter \
|
|
--web.listen-address ${localCfg.listenAddress}:${toString (localCfg.port + 1)} \
|
|
--web.telemetry-path ${localCfg.telemetryPath} \
|
|
${lib.concatStringsSep " \\\n " localCfg.extraFlags}
|
|
'';
|
|
};
|
|
}
|