diff --git a/nixos/modules/services/logging/vector.nix b/nixos/modules/services/logging/vector.nix index dd9aa769ee59..057754c5d0aa 100644 --- a/nixos/modules/services/logging/vector.nix +++ b/nixos/modules/services/logging/vector.nix @@ -6,7 +6,6 @@ }: let cfg = config.services.vector; - in { options.services.vector = { @@ -22,6 +21,23 @@ in ''; }; + gracefulShutdownLimitSecs = lib.mkOption { + type = lib.types.ints.positive; + default = 60; + description = '' + Set the duration in seconds to wait for graceful shutdown after SIGINT or SIGTERM are received. + After the duration has passed, Vector will force shutdown. + ''; + }; + + validateConfig = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Enable the checking of the vector config during build time. This should be disabled when interpolating environment variables. + ''; + }; + settings = lib.mkOption { type = (pkgs.formats.json { }).type; default = { }; @@ -44,7 +60,7 @@ in let format = pkgs.formats.toml { }; conf = format.generate "vector.toml" cfg.settings; - validateConfig = + validatedConfig = file: pkgs.runCommand "validate-vector-conf" { @@ -56,7 +72,9 @@ in ''; in { - ExecStart = "${lib.getExe cfg.package} --config ${validateConfig conf}"; + ExecStart = "${lib.getExe cfg.package} --config ${ + if cfg.validateConfig then (validatedConfig conf) else conf + } --graceful-shutdown-limit-secs ${builtins.toString cfg.gracefulShutdownLimitSecs}"; DynamicUser = true; Restart = "always"; StateDirectory = "vector";