diff --git a/nixos/modules/services/monitoring/grafana-agent.nix b/nixos/modules/services/monitoring/grafana-agent.nix
index b7761c34fe51..a462e760f748 100644
--- a/nixos/modules/services/monitoring/grafana-agent.nix
+++ b/nixos/modules/services/monitoring/grafana-agent.nix
@@ -13,12 +13,7 @@ in
options.services.grafana-agent = {
enable = mkEnableOption (lib.mdDoc "grafana-agent");
- package = mkOption {
- type = types.package;
- default = pkgs.grafana-agent;
- defaultText = lib.literalExpression "pkgs.grafana-agent";
- description = lib.mdDoc "The grafana-agent package to use.";
- };
+ package = mkPackageOptionMD pkgs "grafana-agent" { };
credentials = mkOption {
description = lib.mdDoc ''
@@ -37,11 +32,22 @@ in
};
};
+ extraFlags = mkOption {
+ type = with types; listOf str;
+ default = [ ];
+ example = [ "-enable-features=integrations-next" "-disable-reporting" ];
+ description = lib.mdDoc ''
+ Extra command-line flags passed to {command}`grafana-agent`.
+
+ See
+ '';
+ };
+
settings = mkOption {
description = lib.mdDoc ''
- Configuration for `grafana-agent`.
+ Configuration for {command}`grafana-agent`.
- See https://grafana.com/docs/agent/latest/configuration/
+ See
'';
type = types.submodule {
@@ -140,7 +146,7 @@ in
# We can't use Environment=HOSTNAME=%H, as it doesn't include the domain part.
export HOSTNAME=$(< /proc/sys/kernel/hostname)
- exec ${lib.getExe cfg.package} -config.expand-env -config.file ${configFile}
+ exec ${lib.getExe cfg.package} -config.expand-env -config.file ${configFile} ${escapeShellArgs cfg.extraFlags}
'';
serviceConfig = {
Restart = "always";