aboutsummaryrefslogtreecommitdiff
path: root/pkgs/tools/networking/dd-agent
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
parent0f1753b1d30b63008ff60c731fca03c8b3fd1594 (diff)
dd-agent: 5.11.2 -> 5.13.2 + service rework
Diffstat (limited to 'pkgs/tools/networking/dd-agent')
-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 $@