summary refs log tree commit diff
path: root/pkgs/tools/networking/dd-agent/default.nix
diff options
context:
space:
mode:
authorMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2017-05-31 07:10:01 +0100
committerMateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>2017-06-01 15:08:50 +0100
commitaf096c8bff1e534be9c69f50eed13e6b48427d0e (patch)
treeb7053062e56dda1f8e76de52df428d1aed5896c7 /pkgs/tools/networking/dd-agent/default.nix
parent0f1753b1d30b63008ff60c731fca03c8b3fd1594 (diff)
downloadnixpkgs-af096c8bff1e534be9c69f50eed13e6b48427d0e.tar
nixpkgs-af096c8bff1e534be9c69f50eed13e6b48427d0e.tar.gz
nixpkgs-af096c8bff1e534be9c69f50eed13e6b48427d0e.tar.bz2
nixpkgs-af096c8bff1e534be9c69f50eed13e6b48427d0e.tar.lz
nixpkgs-af096c8bff1e534be9c69f50eed13e6b48427d0e.tar.xz
nixpkgs-af096c8bff1e534be9c69f50eed13e6b48427d0e.tar.zst
nixpkgs-af096c8bff1e534be9c69f50eed13e6b48427d0e.zip
dd-agent: 5.11.2 -> 5.13.2 + service rework
Diffstat (limited to 'pkgs/tools/networking/dd-agent/default.nix')
-rw-r--r--pkgs/tools/networking/dd-agent/default.nix57
1 files changed, 45 insertions, 12 deletions
diff --git a/pkgs/tools/networking/dd-agent/default.nix b/pkgs/tools/networking/dd-agent/default.nix
index d1171a3c835..2556287570f 100644
--- a/pkgs/tools/networking/dd-agent/default.nix
+++ b/pkgs/tools/networking/dd-agent/default.nix
@@ -1,5 +1,11 @@
 { stdenv, fetchFromGitHub, pythonPackages
-, sysstat, unzip, makeWrapper }:
+, sysstat, unzip, makeWrapper
+# We need extraBuildInputs as we want to be able to override this
+# package with python packages _and_ have the produced binaries
+# wrapper with their PYTHONPATH. This means overrideAttrs is not
+# strong enough (it overrides too late), we need to call it
+# beforehand.
+, extraBuildInputs ? [ pythonPackages.psutil ] }:
 let
   inherit (pythonPackages) python;
   docker_1_10 = pythonPackages.buildPythonPackage rec {
@@ -26,33 +32,42 @@ let
     # due to flake8
     doCheck = false;
   };
+  version = "5.13.2";
+
+  integrations = fetchFromGitHub {
+    owner = "datadog";
+    repo = "integrations-core";
+    rev = version;
+    sha256 = "1nbjmkq0wdfndmx0qap69h2rkwkkb0632j87h9d3j99bykyav3y3";
+  };
 
 in stdenv.mkDerivation rec {
-  version = "5.11.2";
   name = "dd-agent-${version}";
 
   src = fetchFromGitHub {
     owner  = "datadog";
     repo   = "dd-agent";
     rev    = version;
-    sha256 = "1iqxvgpsqibqw3vk79158l2pnb6y4pjhjp2d6724lm5rpz4825lx";
+    sha256 = "0x2bxi70l2yf0wi232qksvcscjdpjg8l7dmgg1286vqryyfazfjb";
   };
 
   buildInputs = [
     python
     unzip
     makeWrapper
-    pythonPackages.requests
-    pythonPackages.psycopg2
-    pythonPackages.psutil
+    pythonPackages.boto
+    docker_1_10
+    pythonPackages.kazoo
     pythonPackages.ntplib
-    pythonPackages.simplejson
-    pythonPackages.pyyaml
-    pythonPackages.pymongo_2_9_1
-    pythonPackages.python-etcd
     pythonPackages.consul
-    docker_1_10
-  ];
+    pythonPackages.python-etcd
+    pythonPackages.pyyaml
+    pythonPackages.requests
+    pythonPackages.simplejson
+    pythonPackages.supervisor
+    pythonPackages.tornado
+    pythonPackages.uptime
+  ] ++ extraBuildInputs;
   propagatedBuildInputs = with pythonPackages; [ python tornado ];
 
   buildCommand = ''
@@ -67,6 +82,24 @@ in stdenv.mkDerivation rec {
     # Move out default conf.d so that /etc/dd-agent/conf.d is used
     mv $out/agent/conf.d $out/agent/conf.d-system
 
+    # Sometime between 5.11.2 and 5.13.2 datadog moved out all its
+    # checks into separate repository. Copy them back in so dd-agent
+    # service can easily pick and choose by copying out configs into
+    # its etc files.
+    mkdir -p $out/agent/checks.d
+    for i in ${toString integrations}/* # */
+    do
+      if [ -f "$i/check.py" ]; then
+        if [ -f "$i/conf.yaml.default" -o -f "$i/conf.yaml.example" ]; then
+          local name=$(basename $i)
+          cp $i/check.py $out/agent/checks.d/$name.py
+          # Copy .default file first unless it doesn't exist then copy .default
+          cp $i/conf.yaml.default $out/agent/conf.d-system/$name.yaml &> /dev/null || \
+            cp $i/conf.yaml.example $out/agent/conf.d-system/$name.yaml
+        fi
+      fi
+    done
+
     cat > $out/bin/dd-jmxfetch <<EOF
     #!/usr/bin/env bash
     exec ${python}/bin/python $out/agent/jmxfetch.py $@