Commit 7df5b81f authored by Florian Klink's avatar Florian Klink
Browse files

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.
parent 05217e55
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -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 = ''