Merge pull request #201985 from Shawn8901/prometheus_web_config
This commit is contained in:
commit
78d53eadca
|
@ -3,7 +3,7 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
json = pkgs.formats.json { };
|
||||
yaml = pkgs.formats.yaml { };
|
||||
cfg = config.services.prometheus;
|
||||
checkConfigEnabled =
|
||||
(lib.isBool cfg.checkConfig && cfg.checkConfig)
|
||||
|
@ -11,8 +11,6 @@ let
|
|||
|
||||
workingDir = "/var/lib/" + cfg.stateDir;
|
||||
|
||||
prometheusYmlOut = "${workingDir}/prometheus-substituted.yaml";
|
||||
|
||||
triggerReload = pkgs.writeShellScriptBin "trigger-reload-prometheus" ''
|
||||
PATH="${makeBinPath (with pkgs; [ systemd ])}"
|
||||
if systemctl -q is-active prometheus.service; then
|
||||
|
@ -38,7 +36,7 @@ let
|
|||
promtool ${what} $out
|
||||
'' else file;
|
||||
|
||||
generatedPrometheusYml = json.generate "prometheus.yml" promConfig;
|
||||
generatedPrometheusYml = yaml.generate "prometheus.yml" promConfig;
|
||||
|
||||
# This becomes the main config file for Prometheus
|
||||
promConfig = {
|
||||
|
@ -73,7 +71,8 @@ let
|
|||
"--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
|
||||
"--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
|
||||
] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
|
||||
++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}";
|
||||
++ optional (cfg.retentionTime != null) "--storage.tsdb.retention.time=${cfg.retentionTime}"
|
||||
++ optional (cfg.webConfigFile != null) "--web.config.file=${cfg.webConfigFile}";
|
||||
|
||||
filterValidPrometheus = filterAttrsListRecursive (n: v: !(n == "_module" || v == null));
|
||||
filterAttrsListRecursive = pred: x:
|
||||
|
@ -1719,6 +1718,15 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
webConfigFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = lib.mdDoc ''
|
||||
Specifies which file should be used as web.config.file and be passed on startup.
|
||||
See https://prometheus.io/docs/prometheus/latest/configuration/https/ for valid options.
|
||||
'';
|
||||
};
|
||||
|
||||
checkConfig = mkOption {
|
||||
type = with types; either bool (enum [ "syntax-only" ]);
|
||||
default = true;
|
||||
|
|
Loading…
Reference in a new issue