summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-10-05 22:52:48 -0500
committerGitHub <noreply@github.com>2018-10-05 22:52:48 -0500
commit907afd17f9846329d174c72d332563f31dee75a8 (patch)
tree5fa69ea55c9aed57b4d7c2d8190f69312009af07 /nixos
parent91078ee339540480bd61ef6c29f74f88bc4e712a (diff)
parent69e4e4934d0dc9e9a0c991abbcd00b7e81519c79 (diff)
downloadnixlib-907afd17f9846329d174c72d332563f31dee75a8.tar
nixlib-907afd17f9846329d174c72d332563f31dee75a8.tar.gz
nixlib-907afd17f9846329d174c72d332563f31dee75a8.tar.bz2
nixlib-907afd17f9846329d174c72d332563f31dee75a8.tar.lz
nixlib-907afd17f9846329d174c72d332563f31dee75a8.tar.xz
nixlib-907afd17f9846329d174c72d332563f31dee75a8.tar.zst
nixlib-907afd17f9846329d174c72d332563f31dee75a8.zip
Merge pull request #46068 from azazel75/alertmanager-flags
Prometheus Alertmanager: Allow the definition of extra options on commandline
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/monitoring/prometheus/alertmanager.nix23
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 8a47c9f1e7d8..8a44cf7fd8f6 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 = {