diff options
author | Alberto Berti <alberto@metapensiero.it> | 2018-09-04 23:19:26 +0200 |
---|---|---|
committer | Alberto Berti <alberto@metapensiero.it> | 2018-09-04 23:19:26 +0200 |
commit | 69e4e4934d0dc9e9a0c991abbcd00b7e81519c79 (patch) | |
tree | bd1aab429602ca1b60123682b2158db573e8927f /nixos/modules/services/monitoring/prometheus/alertmanager.nix | |
parent | 8dc63ce9aa40614218728fc265121cb2e1dbbc80 (diff) | |
download | nixpkgs-69e4e4934d0dc9e9a0c991abbcd00b7e81519c79.tar nixpkgs-69e4e4934d0dc9e9a0c991abbcd00b7e81519c79.tar.gz nixpkgs-69e4e4934d0dc9e9a0c991abbcd00b7e81519c79.tar.bz2 nixpkgs-69e4e4934d0dc9e9a0c991abbcd00b7e81519c79.tar.lz nixpkgs-69e4e4934d0dc9e9a0c991abbcd00b7e81519c79.tar.xz nixpkgs-69e4e4934d0dc9e9a0c991abbcd00b7e81519c79.tar.zst nixpkgs-69e4e4934d0dc9e9a0c991abbcd00b7e81519c79.zip |
Allow the definition of extra options on commandline
I stumbled upon an issue with the Alertmanager that required an additional comand line option. See https://groups.google.com/forum/#!msg/prometheus-users/-5wd-P13xCI/lGLBHHgnBgAJ
Diffstat (limited to 'nixos/modules/services/monitoring/prometheus/alertmanager.nix')
-rw-r--r-- | nixos/modules/services/monitoring/prometheus/alertmanager.nix | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix index 8a47c9f1e7d..8a44cf7fd8f 100644 --- a/nixos/modules/services/monitoring/prometheus/alertmanager.nix +++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix @@ -9,6 +9,15 @@ let if cfg.configText != null then pkgs.writeText "alertmanager.yml" cfg.configText else mkConfigFile; + cmdlineArgs = cfg.extraFlags ++ [ + "--config.file ${alertmanagerYml}" + "--web.listen-address ${cfg.listenAddress}:${toString cfg.port}" + "--log.level ${cfg.logLevel}" + ] ++ (optional (cfg.webExternalUrl != null) + "--web.external-url ${cfg.webExternalUrl}" + ) ++ (optional (cfg.logFormat != null) + "--log.format ${cfg.logFormat}" + ); in { options = { services.prometheus.alertmanager = { @@ -99,6 +108,14 @@ in { Open port in firewall for incoming connections. ''; }; + + extraFlags = mkOption { + type = types.listOf types.str; + default = []; + description = '' + Extra commandline options when launching the Alertmanager. + ''; + }; }; }; @@ -111,11 +128,7 @@ in { after = [ "network.target" ]; script = '' ${pkgs.prometheus-alertmanager.bin}/bin/alertmanager \ - --config.file ${alertmanagerYml} \ - --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ - --log.level ${cfg.logLevel} \ - ${optionalString (cfg.webExternalUrl != null) ''--web.external-url ${cfg.webExternalUrl} \''} - ${optionalString (cfg.logFormat != null) "--log.format ${cfg.logFormat}"} + ${concatStringsSep " \\\n " cmdlineArgs} ''; serviceConfig = { |