From 0bcd6def8c01fb5478621125ccdce3293d03653f Mon Sep 17 00:00:00 2001 From: Ivan Reshetnikov Date: Mon, 11 Mar 2024 22:05:46 +0500 Subject: [PATCH] feat: enable postgres exporter, group monitoring programs --- nixos/configuration.nix | 4 ++-- nixos/databases/postgres.nix | 6 ++++++ nixos/{programs => monitoring}/grafana.nix | 0 nixos/{programs => monitoring}/prometheus.nix | 11 +++++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) rename nixos/{programs => monitoring}/grafana.nix (100%) rename nixos/{programs => monitoring}/prometheus.nix (62%) diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 70a346a..85925b1 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -29,8 +29,8 @@ ./programs/prosody.nix ./programs/yggdrasil.nix - ./programs/grafana.nix - ./programs/prometheus.nix + ./monitoring/grafana.nix + ./monitoring/prometheus.nix ]; nix = { diff --git a/nixos/databases/postgres.nix b/nixos/databases/postgres.nix index 233641c..47fbe98 100644 --- a/nixos/databases/postgres.nix +++ b/nixos/databases/postgres.nix @@ -13,6 +13,7 @@ "freshrss" "prosody" "grafana" + "postgres-exporter" ]; ensureUsers = [ { @@ -60,6 +61,11 @@ ensureDBOwnership = true; ensureClauses.login = true; } + { + name = "postgres-exporter"; + ensureDBOwnership = true; + ensureClauses.login = true; + } ]; identMap = '' # ArbitraryMapName systemUser DBUser diff --git a/nixos/programs/grafana.nix b/nixos/monitoring/grafana.nix similarity index 100% rename from nixos/programs/grafana.nix rename to nixos/monitoring/grafana.nix diff --git a/nixos/programs/prometheus.nix b/nixos/monitoring/prometheus.nix similarity index 62% rename from nixos/programs/prometheus.nix rename to nixos/monitoring/prometheus.nix index 15fbfb7..1eac4dd 100644 --- a/nixos/programs/prometheus.nix +++ b/nixos/monitoring/prometheus.nix @@ -9,6 +9,11 @@ enabledCollectors = [ "systemd" ]; port = 55012; }; + postgres = { + enable = true; + port = 55014; + dataSourceName = "user=postgres-exporter database=postgres-exporter host=/run/postgresql sslmode=disable"; + }; }; scrapeConfigs = [ @@ -25,6 +30,12 @@ targets = [ "127.0.0.1:55013" ]; }]; } + { + job_name = "postgres"; + static_configs = [{ + targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.postgres.port}" ]; + }]; + } ]; }; }