| 
									
										
										
										
											2019-07-17 14:19:18 +02:00
										 |  |  | { config, lib, pkgs, options }: | 
					
						
							| 
									
										
										
										
											2018-03-09 21:33:09 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | with lib; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  |   cfg = config.services.prometheus.exporters.minio; | 
					
						
							|  |  |  | in | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   port = 9290; | 
					
						
							|  |  |  |   extraOpts = { | 
					
						
							|  |  |  |     minioAddress = mkOption { | 
					
						
							|  |  |  |       type = types.str; | 
					
						
							|  |  |  |       example = "https://10.0.0.1:9000"; | 
					
						
							|  |  |  |       description = ''
 | 
					
						
							|  |  |  |         The URL of the minio server. | 
					
						
							|  |  |  |         Use HTTPS if Minio accepts secure connections only. | 
					
						
							|  |  |  |         By default this connects to the local minio server if enabled. | 
					
						
							|  |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     minioAccessKey = mkOption { | 
					
						
							|  |  |  |       type = types.str; | 
					
						
							|  |  |  |       example = "yourMinioAccessKey"; | 
					
						
							|  |  |  |       description = ''
 | 
					
						
							|  |  |  |         The value of the Minio access key. | 
					
						
							|  |  |  |         It is required in order to connect to the server. | 
					
						
							|  |  |  |         By default this uses the one from the local minio server if enabled | 
					
						
							|  |  |  |         and <literal>config.services.minio.accessKey</literal>. | 
					
						
							|  |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     minioAccessSecret = mkOption { | 
					
						
							|  |  |  |       type = types.str; | 
					
						
							|  |  |  |       description = ''
 | 
					
						
							|  |  |  |         The value of the Minio access secret. | 
					
						
							|  |  |  |         It is required in order to connect to the server. | 
					
						
							|  |  |  |         By default this uses the one from the local minio server if enabled | 
					
						
							|  |  |  |         and <literal>config.services.minio.secretKey</literal>. | 
					
						
							|  |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     minioBucketStats = mkOption { | 
					
						
							|  |  |  |       type = types.bool; | 
					
						
							|  |  |  |       default = false; | 
					
						
							|  |  |  |       description = ''
 | 
					
						
							|  |  |  |         Collect statistics about the buckets and files in buckets. | 
					
						
							|  |  |  |         It requires more computation, use it carefully in case of large buckets.. | 
					
						
							|  |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  |   serviceOpts = { | 
					
						
							|  |  |  |     serviceConfig = { | 
					
						
							|  |  |  |       ExecStart = ''
 | 
					
						
							|  |  |  |         ${pkgs.prometheus-minio-exporter}/bin/minio-exporter \ | 
					
						
							|  |  |  |           -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ | 
					
						
							|  |  |  |           -minio.server ${cfg.minioAddress} \ | 
					
						
							| 
									
										
										
										
											2020-03-06 00:22:15 +01:00
										 |  |  |           -minio.access-key ${escapeShellArg cfg.minioAccessKey} \ | 
					
						
							|  |  |  |           -minio.access-secret ${escapeShellArg cfg.minioAccessSecret} \ | 
					
						
							| 
									
										
										
										
											2018-03-09 21:33:09 +01:00
										 |  |  |           ${optionalString cfg.minioBucketStats "-minio.bucket-stats"} \ | 
					
						
							|  |  |  |           ${concatStringsSep " \\\n  " cfg.extraFlags} | 
					
						
							|  |  |  |       '';
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |