diff options
author | Bjørn Forsman <bjorn.forsman@gmail.com> | 2016-12-22 23:18:39 +0100 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2017-01-14 15:41:05 +0100 |
commit | d2413943fa3a66c63df5a13822523067468c2f60 (patch) | |
tree | 2362b200ccf40e11f2648f54b6f0d99dcc620067 /nixos/modules/services/monitoring | |
parent | 7d75dd71dc2ec829bc16a5ea074df0afa4bffc02 (diff) | |
download | nixlib-d2413943fa3a66c63df5a13822523067468c2f60.tar nixlib-d2413943fa3a66c63df5a13822523067468c2f60.tar.gz nixlib-d2413943fa3a66c63df5a13822523067468c2f60.tar.bz2 nixlib-d2413943fa3a66c63df5a13822523067468c2f60.tar.lz nixlib-d2413943fa3a66c63df5a13822523067468c2f60.tar.xz nixlib-d2413943fa3a66c63df5a13822523067468c2f60.tar.zst nixlib-d2413943fa3a66c63df5a13822523067468c2f60.zip |
nixos/prometheus: add configText option for alertmanager
The reason being less mental overhead when reading upstream documentation. Examples can be pasted right into the configuration instead of translating to Nix attrset first.
Diffstat (limited to 'nixos/modules/services/monitoring')
-rw-r--r-- | nixos/modules/services/monitoring/prometheus/alertmanager.nix | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix index da2cd02eaa3b..cf761edad926 100644 --- a/nixos/modules/services/monitoring/prometheus/alertmanager.nix +++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix @@ -5,6 +5,10 @@ with lib; let cfg = config.services.prometheus.alertmanager; mkConfigFile = pkgs.writeText "alertmanager.yml" (builtins.toJSON cfg.configuration); + alertmanagerYml = + if cfg.configText != null then + pkgs.writeText "alertmanager.yml" cfg.configText + else mkConfigFile; in { options = { services.prometheus.alertmanager = { @@ -34,6 +38,17 @@ in { ''; }; + configText = mkOption { + type = types.nullOr types.lines; + default = null; + description = '' + Alertmanager configuration as YAML text. If non-null, this option + defines the text that is written to alertmanager.yml. If null, the + contents of alertmanager.yml is generated from the structured config + options. + ''; + }; + logFormat = mkOption { type = types.nullOr types.str; default = null; @@ -96,7 +111,7 @@ in { after = [ "network.target" ]; script = '' ${pkgs.prometheus-alertmanager.bin}/bin/alertmanager \ - -config.file ${mkConfigFile} \ + -config.file ${alertmanagerYml} \ -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \ -log.level ${cfg.logLevel} \ ${optionalString (cfg.webExternalUrl != null) ''-web.external-url ${cfg.webExternalUrl} \''} |