about summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2020-04-14 16:13:34 +0200
committerGitHub <noreply@github.com>2020-04-14 16:13:34 +0200
commit57087ea280890f99ab9258186ae922b7d2d8d7a0 (patch)
treec3999f695bd79e3afb01e6aae39d1f8ba8d81ed9 /nixos/modules/services
parent143e5f64dd3a85b0a195051d2925b8e4fe7d05fd (diff)
parente484ca3d9b34bc27cd7e3611b6d3d483bd07c000 (diff)
downloadnixlib-57087ea280890f99ab9258186ae922b7d2d8d7a0.tar
nixlib-57087ea280890f99ab9258186ae922b7d2d8d7a0.tar.gz
nixlib-57087ea280890f99ab9258186ae922b7d2d8d7a0.tar.bz2
nixlib-57087ea280890f99ab9258186ae922b7d2d8d7a0.tar.lz
nixlib-57087ea280890f99ab9258186ae922b7d2d8d7a0.tar.xz
nixlib-57087ea280890f99ab9258186ae922b7d2d8d7a0.tar.zst
nixlib-57087ea280890f99ab9258186ae922b7d2d8d7a0.zip
Merge pull request #85165 from mayflower/alertmanager-clustering
prometheus/alertmanager: implement HA clustering support
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/monitoring/prometheus/alertmanager.nix11
1 files changed, 11 insertions, 0 deletions
diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
index 69e3dcf14085..1b02ebf37045 100644
--- a/nixos/modules/services/monitoring/prometheus/alertmanager.nix
+++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
@@ -21,6 +21,8 @@ let
     "--config.file /tmp/alert-manager-substituted.yaml"
     "--web.listen-address ${cfg.listenAddress}:${toString cfg.port}"
     "--log.level ${cfg.logLevel}"
+    "--storage.path /var/lib/alertmanager"
+    (toString (map (peer: "--cluster.peer ${peer}:9094") cfg.clusterPeers))
     ] ++ (optional (cfg.webExternalUrl != null)
       "--web.external-url ${cfg.webExternalUrl}"
     ) ++ (optional (cfg.logFormat != null)
@@ -120,6 +122,14 @@ in {
         '';
       };
 
+      clusterPeers = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Initial peers for HA cluster.
+        '';
+      };
+
       extraFlags = mkOption {
         type = types.listOf types.str;
         default = [];
@@ -162,6 +172,7 @@ in {
         '';
         serviceConfig = {
           Restart  = "always";
+          StateDirectory = "alertmanager";
           DynamicUser = true; # implies PrivateTmp
           EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile;
           WorkingDirectory = "/tmp";