Merge pull request #201985 from Shawn8901/prometheus_web_config

This commit is contained in:
Sandro 2022-12-15 23:18:55 +01:00 committed by GitHub
commit 78d53eadca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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;