diff options
author | Rory& <root@rory.gay> | 2024-08-28 21:40:53 +0200 |
---|---|---|
committer | Rory& <root@rory.gay> | 2024-08-28 21:40:53 +0200 |
commit | 62fb7f7c127ca8aee56b3903ee207dec766d0a11 (patch) | |
tree | ac38a9bc6228b990687dcb636dc13080bfbd334f /modules/monitoring/postgres.nix | |
parent | Desktop/i686 changes (diff) | |
download | Rory-Open-Architecture-62fb7f7c127ca8aee56b3903ee207dec766d0a11.tar.xz |
Monitoring?
Diffstat (limited to 'modules/monitoring/postgres.nix')
-rw-r--r-- | modules/monitoring/postgres.nix | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/modules/monitoring/postgres.nix b/modules/monitoring/postgres.nix new file mode 100644 index 0000000..bbb55e6 --- /dev/null +++ b/modules/monitoring/postgres.nix @@ -0,0 +1,48 @@ +{ lib, config, ... }: +let + cfg = config.monitoring; +in +{ + config = lib.mkIf (cfg.monitorAll && config.services.postgresql.enable) { + services.prometheus.exporters.postgres = { + enable = true; + extraFlags = [ + "--collector.database_wraparound" + "--collector.long_running_transactions" + "--collector.postmaster" + "--collector.process_idle" + "--collector.stat_activity_autovacuum" + "--collector.stat_statements" + #"--collector.stat_wal_receiver" #we dont have WAL receivers + "--collector.statio_user_indexes" + "--collector.xlog_location" + ]; + }; + + services.prometheus.scrapeConfigs = ( + lib.map (interval: { + job_name = "postgres-${toString interval}s"; + scrape_interval = "${toString interval}s"; + static_configs = [ { targets = [ "localhost:${toString config.services.prometheus.exporters.postgres.port}" ]; } ]; + }) cfg.prometheusScrapeIntervals + ); + + services.grafana.provision.dashboards.settings = { + apiVersion = 1; + providers = [ + { + name = "14114-postgres-overview"; + orgId = 1; + type = "file"; + options = { + path = builtins.fetchurl { + url = "https://grafana.com/api/dashboards/14114/revisions/1/download"; + sha256 = "0qza4j8lywrj08bqbww52dgh2p2b9rkhq5p313g72i57lrlkacfl"; + }; + }; + } + ]; + }; + + }; +} |