64 lines
1.9 KiB
Nix
64 lines
1.9 KiB
Nix
{ config, lib, pkgs, options }:
|
|
|
|
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} \
|
|
-minio.access-key ${escapeShellArg cfg.minioAccessKey} \
|
|
-minio.access-secret ${escapeShellArg cfg.minioAccessSecret} \
|
|
${optionalString cfg.minioBucketStats "-minio.bucket-stats"} \
|
|
${concatStringsSep " \\\n " cfg.extraFlags}
|
|
'';
|
|
};
|
|
};
|
|
}
|