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}
 | |
|       '';
 | |
|     };
 | |
| }
 |