nixos/prometheus-varnish-exporter: update module

Changed files
+68 -2
nixos
modules
services
monitoring
prometheus
exporters
+68 -2
nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
···
in
{
port = 9131;
+
extraOpts = {
+
noExit = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Do not exit server on Varnish scrape errors.
+
'';
+
};
+
withGoMetrics = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Export go runtime and http handler metrics.
+
'';
+
};
+
verbose = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Enable verbose logging.
+
'';
+
};
+
raw = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Enable raw stdout logging without timestamps.
+
'';
+
};
+
varnishStatPath = mkOption {
+
type = types.str;
+
default = "varnishstat";
+
description = ''
+
Path to varnishstat.
+
'';
+
};
+
instance = mkOption {
+
type = types.nullOr types.str;
+
default = null;
+
description = ''
+
varnishstat -n value.
+
'';
+
};
+
healthPath = mkOption {
+
type = types.nullOr types.str;
+
default = null;
+
description = ''
+
Path under which to expose healthcheck. Disabled unless configured.
+
'';
+
};
+
telemetryPath = mkOption {
+
type = types.str;
+
default = "/metrics";
+
description = ''
+
Path under which to expose metrics.
+
'';
+
};
+
};
serviceOpts = {
path = [ pkgs.varnish ];
serviceConfig = {
DynamicUser = true;
ExecStart = ''
${pkgs.prometheus-varnish-exporter}/bin/prometheus_varnish_exporter \
-
-web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
-
${concatStringsSep " \\\n " cfg.extraFlags}
+
--web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+
--web.telemetry-path ${cfg.telemetryPath} \
+
--varnishstat-path ${cfg.varnishStatPath} \
+
${concatStringsSep " \\\n " (cfg.extraFlags
+
++ optional (cfg.healthPath != null) "--web.health-path ${cfg.healthPath}"
+
++ optional (cfg.instance != null) "-n ${cfg.instance}"
+
++ optional cfg.noExit "--no-exit"
+
++ optional cfg.withGoMetrics "--with-go-metrics"
+
++ optional cfg.verbose "--verbose"
+
++ optional cfg.raw "--raw")}
'';
};
};