about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2022-07-28 13:42:16 +0700
committerFlorian Klink <flokli@flokli.de>2022-07-29 13:23:12 +0700
commit7df5b81fc3bfaa7b8102c7523f271be85239184a (patch)
tree05fa58e635ac36686fbca8229865725d8723329a
parent05217e5564ba9edc5ec474d6df7369c441a80ee4 (diff)
downloadnixlib-7df5b81fc3bfaa7b8102c7523f271be85239184a.tar
nixlib-7df5b81fc3bfaa7b8102c7523f271be85239184a.tar.gz
nixlib-7df5b81fc3bfaa7b8102c7523f271be85239184a.tar.bz2
nixlib-7df5b81fc3bfaa7b8102c7523f271be85239184a.tar.lz
nixlib-7df5b81fc3bfaa7b8102c7523f271be85239184a.tar.xz
nixlib-7df5b81fc3bfaa7b8102c7523f271be85239184a.tar.zst
nixlib-7df5b81fc3bfaa7b8102c7523f271be85239184a.zip
nixos/grafana-agent: ensure defaults are merged
Move the defaults to the `config` section of the module, and apply them
with mkDefault.

That way the defaults are merged with user-provided config, and are
merged without having to use lib.mkForce.
-rw-r--r--nixos/modules/services/monitoring/grafana-agent.nix22
1 files changed, 18 insertions, 4 deletions
diff --git a/nixos/modules/services/monitoring/grafana-agent.nix b/nixos/modules/services/monitoring/grafana-agent.nix
index bbeda1846470..a4b18b4f28e9 100644
--- a/nixos/modules/services/monitoring/grafana-agent.nix
+++ b/nixos/modules/services/monitoring/grafana-agent.nix
@@ -48,9 +48,10 @@ in
         freeformType = settingsFormat.type;
       };
 
-      default = {
+      default = { };
+      defaultText = ''
         metrics = {
-          wal_directory = "\${STATE_DIRECTORY}";
+          wal_directory = "\''${STATE_DIRECTORY}";
           global.scrape_interval = "5s";
         };
         integrations = {
@@ -59,8 +60,7 @@ in
           node_exporter.enabled = true;
           replace_instance_label = true;
         };
-      };
-
+      '';
       example = {
         metrics.global.remote_write = [{
           url = "\${METRICS_REMOTE_WRITE_URL}";
@@ -104,6 +104,20 @@ in
   };
 
   config = mkIf cfg.enable {
+    services.grafana-agent.settings = {
+      # keep this in sync with config.services.grafana-agent.settings.defaultText.
+      metrics = {
+        wal_directory = mkDefault "\${STATE_DIRECTORY}";
+        global.scrape_interval = mkDefault "5s";
+      };
+      integrations = {
+        agent.enabled = mkDefault true;
+        agent.scrape_integration = mkDefault true;
+        node_exporter.enabled = mkDefault true;
+        replace_instance_label = mkDefault true;
+      };
+    };
+
     systemd.services.grafana-agent = {
       wantedBy = [ "multi-user.target" ];
       script = ''