summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorRob Vermaas <rob.vermaas@gmail.com>2017-05-04 09:40:51 +0000
committerRob Vermaas <rob.vermaas@gmail.com>2017-05-04 09:47:21 +0000
commita9f054c8348bf8cd7630cd99def2fd86d22c78bd (patch)
tree4118e7a8ab53f982ef746fb9808b9561157fad88 /nixos/modules/services
parentf2771375222e399d3ec628ebd59e2dac501d7e4b (diff)
downloadnixpkgs-a9f054c8348bf8cd7630cd99def2fd86d22c78bd.tar
nixpkgs-a9f054c8348bf8cd7630cd99def2fd86d22c78bd.tar.gz
nixpkgs-a9f054c8348bf8cd7630cd99def2fd86d22c78bd.tar.bz2
nixpkgs-a9f054c8348bf8cd7630cd99def2fd86d22c78bd.tar.lz
nixpkgs-a9f054c8348bf8cd7630cd99def2fd86d22c78bd.tar.xz
nixpkgs-a9f054c8348bf8cd7630cd99def2fd86d22c78bd.tar.zst
nixpkgs-a9f054c8348bf8cd7630cd99def2fd86d22c78bd.zip
dd-agent: Add default config files of dd-agent and auto_conf dir
to /etc/dd-agent/conf.d by default, and make sure
/etc/dd-agent/conf.d is used.

Before NixOS 17.03, we were using dd-agent 5.5.X which
used configuration from /etc/dd-agent/conf.d

In NixOS 17.03 the default conf.d location is first used relative,
meaning that $out/agent/conf.d was used without NixOS overrides.

This change implements similar functionality as PR #25288, without
breaking backwards compatibility.

(cherry picked from commit 77c85b0ecbc1070d7adff31b339bede92e4193fa)
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/monitoring/dd-agent/dd-agent-defaults.nix8
-rw-r--r--nixos/modules/services/monitoring/dd-agent/dd-agent.nix (renamed from nixos/modules/services/monitoring/dd-agent.nix)7
-rwxr-xr-xnixos/modules/services/monitoring/dd-agent/update-dd-agent-defaults9
3 files changed, 23 insertions, 1 deletions
diff --git a/nixos/modules/services/monitoring/dd-agent/dd-agent-defaults.nix b/nixos/modules/services/monitoring/dd-agent/dd-agent-defaults.nix
new file mode 100644
index 00000000000..04512819742
--- /dev/null
+++ b/nixos/modules/services/monitoring/dd-agent/dd-agent-defaults.nix
@@ -0,0 +1,8 @@
+# Generated using update-dd-agent-default, please re-run after updating dd-agent. DO NOT EDIT MANUALLY.
+[
+  "auto_conf"
+  "agent_metrics.yaml.default"
+  "disk.yaml.default"
+  "network.yaml.default"
+  "ntp.yaml.default"
+]
diff --git a/nixos/modules/services/monitoring/dd-agent.nix b/nixos/modules/services/monitoring/dd-agent/dd-agent.nix
index a98b0f2f0f8..2fb1b9020bf 100644
--- a/nixos/modules/services/monitoring/dd-agent.nix
+++ b/nixos/modules/services/monitoring/dd-agent/dd-agent.nix
@@ -75,7 +75,12 @@ let
   jmxConfig = pkgs.writeText "jmx.yaml" cfg.jmxConfig;
   
   etcfiles =
-    [ { source = ddConf;
+    let
+      defaultConfd = import ./dd-agent-defaults.nix;
+    in (map (f: { source = "${pkgs.dd-agent}/agent/conf.d-system/${f}";
+                  target = "dd-agent/conf.d/${f}";
+                }) defaultConfd) ++ [
+      { source = ddConf;
         target = "dd-agent/datadog.conf";
       }
       { source = diskConfig;
diff --git a/nixos/modules/services/monitoring/dd-agent/update-dd-agent-defaults b/nixos/modules/services/monitoring/dd-agent/update-dd-agent-defaults
new file mode 100755
index 00000000000..76724173171
--- /dev/null
+++ b/nixos/modules/services/monitoring/dd-agent/update-dd-agent-defaults
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+dd=$(nix-build --no-out-link -A dd-agent ../../../..)
+echo '# Generated using update-dd-agent-default, please re-run after updating dd-agent. DO NOT EDIT MANUALLY.' > dd-agent-defaults.nix
+echo '[' >> dd-agent-defaults.nix
+echo '  "auto_conf"' >> dd-agent-defaults.nix
+for f in $(find $dd/agent/conf.d-system -maxdepth 1 -type f | grep -v '\.example' | sort); do
+  echo "  \"$(basename $f)\"" >> dd-agent-defaults.nix
+done
+echo ']' >> dd-agent-defaults.nix