From 543f219b30c9bde1a9a7e258a18cd3205f1ee013 Mon Sep 17 00:00:00 2001 From: WilliButz Date: Sun, 11 Aug 2019 13:33:42 +0200 Subject: [PATCH] nixos/prometheus: replace 'alertmanagerURL' options for prometheus2 Prometheus2 does no longer support the command-line flag to specify an alertmanager. Instead it now supports both service discovery and configuration of alertmanagers in the alerting config section. Simply mapping the previous option to an entry in the new alertmanagers section is not enough to allow for complete configurations of an alertmanager. Therefore the option alertmanagerURL is no longer used and instead a full alertmanager configuration is expected. --- .../monitoring/prometheus/default.nix | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix index d8384e0d35b..647d67533b8 100644 --- a/nixos/modules/services/monitoring/prometheus/default.nix +++ b/nixos/modules/services/monitoring/prometheus/default.nix @@ -79,12 +79,8 @@ let (pkgs.writeText "prometheus.rules" (concatStringsSep "\n" cfg2.rules)) ]); scrape_configs = filterValidPrometheus cfg2.scrapeConfigs; - alerting = optionalAttrs (cfg2.alertmanagerURL != []) { - alertmanagers = [{ - static_configs = [{ - targets = cfg2.alertmanagerURL; - }]; - }]; + alerting = { + inherit (cfg2) alertmanagers; }; }; @@ -738,11 +734,23 @@ in { ''; }; - alertmanagerURL = mkOption { - type = types.listOf types.str; + alertmanagers = mkOption { + type = types.listOf types.attrs; + example = literalExample '' + [ { + scheme = "https"; + path_prefix = "/alertmanager"; + static_configs = [ { + targets = [ + "prometheus.domain.tld" + ]; + } ]; + } ] + ''; default = []; description = '' - List of Alertmanager URLs to send notifications to. + A list of alertmanagers to send alerts to. + See the official documentation for more information. ''; };