diff --git a/pkgs/tools/networking/dd-agent/datadog-agent.nix b/pkgs/tools/networking/dd-agent/datadog-agent.nix index ac35da0bbd3b..4aa7d70b1abc 100644 --- a/pkgs/tools/networking/dd-agent/datadog-agent.nix +++ b/pkgs/tools/networking/dd-agent/datadog-agent.nix @@ -1,4 +1,16 @@ -{ lib, buildGoModule, makeWrapper, fetchFromGitHub, pythonPackages, pkg-config, systemd, hostname, extraTags ? [] }: +{ lib +, stdenv +, cmake +, buildGoModule +, makeWrapper +, fetchFromGitHub +, pythonPackages +, pkg-config +, systemd +, hostname +, withSystemd ? stdenv.isLinux +, extraTags ? [ ] +}: let # keep this in sync with github.com/DataDog/agent-payload dependency @@ -7,18 +19,29 @@ let owner = "DataDog"; repo = "datadog-agent"; goPackagePath = "github.com/${owner}/${repo}"; - -in buildGoModule rec { - pname = "datadog-agent"; - version = "7.35.1"; + version = "7.38.1"; src = fetchFromGitHub { inherit owner repo; rev = version; - sha256 = "sha256-TvkPw67HBeRkKbbA3O/JVBkEUds36eW4UwKnRvPwAXc="; + sha256 = "sha256-bG8wsSQvZcG4/Th6mWVdVX9vpeYBZx8FxwdYXpIdXnU="; + }; + rtloader = stdenv.mkDerivation { + pname = "datadog-agent-rtloader"; + src = "${src}/rtloader"; + inherit version; + nativeBuildInputs = [ cmake ]; + buildInputs = [ python ]; + cmakeFlags = ["-DBUILD_DEMO=OFF" "-DDISABLE_PYTHON2=ON"]; }; - vendorSha256 = "sha256-RmHxjJAMS+2MVoBJMD6FTQLhxDgzH3jtp87474i9ho8="; +in buildGoModule rec { + pname = "datadog-agent"; + inherit src version; + + doCheck = false; + + vendorSha256 = "sha256-bGDf48wFa32hURZfGN5pCMmslC3PeLNayKcl5cfjq9M="; subPackages = [ "cmd/agent" @@ -30,19 +53,29 @@ in buildGoModule rec { nativeBuildInputs = [ pkg-config makeWrapper ]; - buildInputs = [ systemd ]; + buildInputs = [rtloader] ++ lib.optionals withSystemd [ systemd ]; PKG_CONFIG_PATH = "${python}/lib/pkgconfig"; - preBuild = let - ldFlags = lib.concatStringsSep " " [ - "-X ${goPackagePath}/pkg/version.Commit=${src.rev}" - "-X ${goPackagePath}/pkg/version.AgentVersion=${version}" - "-X ${goPackagePath}/pkg/serializer.AgentPayloadVersion=${payloadVersion}" - "-X ${goPackagePath}/pkg/collector/py.pythonHome=${python}" - "-r ${python}/lib" - ]; - in '' - buildFlagsArray=( "-tags" "ec2 systemd cpython process log secrets ${lib.concatStringsSep " " extraTags}" "-ldflags" "${ldFlags}") + tags = [ + "ec2" + "python" + "process" + "log" + "secrets" + ] + ++ lib.optionals withSystemd [ "systemd" ] + ++ extraTags; + + ldflags = [ + "-X ${goPackagePath}/pkg/version.Commit=${src.rev}" + "-X ${goPackagePath}/pkg/version.AgentVersion=${version}" + "-X ${goPackagePath}/pkg/serializer.AgentPayloadVersion=${payloadVersion}" + "-X ${goPackagePath}/pkg/collector/python.pythonHome3=${python}" + "-X ${goPackagePath}/pkg/config.DefaultPython=3" + "-r ${python}/lib" + ]; + + preBuild = '' # Keep directories to generate in sync with tasks/go.py go generate ./pkg/status ./cmd/agent/gui ''; diff --git a/pkgs/tools/networking/dd-agent/integrations-core.nix b/pkgs/tools/networking/dd-agent/integrations-core.nix index d7dbb65b4f58..ca1ffa3f2559 100644 --- a/pkgs/tools/networking/dd-agent/integrations-core.nix +++ b/pkgs/tools/networking/dd-agent/integrations-core.nix @@ -42,20 +42,15 @@ let owner = "DataDog"; repo = "integrations-core"; rev = version; - sha256 = "0424zsnf747s10kfzv5y0m0ac9sgczip78yvghhrc2i089i5z2h4"; + sha256 = "sha256-CIzuJ97KwsG1k65Y+8IUSka/3JX1pmQKN3hPHzZnGhQ="; }; - version = "7.30.1"; + version = "7.38.0"; # Build helper to build a single datadog integration package. buildIntegration = { pname, ... }@args: python.pkgs.buildPythonPackage (args // { inherit src version; name = "datadog-integration-${pname}-${version}"; - postPatch = '' - # jailbreak install_requires - sed -i 's/==.*//' requirements.in - cp requirements.in requirements.txt - ''; sourceRoot = "source/${args.sourceRoot or pname}"; doCheck = false; }); @@ -65,7 +60,21 @@ let pname = "checks-base"; sourceRoot = "datadog_checks_base"; propagatedBuildInputs = with python.pkgs; [ - requests protobuf prometheus-client simplejson uptime + cachetools + cryptography + immutables + jellyfish + prometheus-client + protobuf + pydantic + python-dateutil + pyyaml + requests + requests-toolbelt + requests-unixsocket + simplejson + uptime + wrapt ]; }; @@ -75,8 +84,8 @@ let mongo = (ps: [ ps.pymongo ]); network = (ps: [ ps.psutil ]); nginx = (ps: []); - postgres = (ps: with ps; [ pg8000 psycopg2 ]); - process = (ps: []); + postgres = (ps: with ps; [ pg8000 psycopg2 semver ]); + process = (ps: [ ps.psutil]); }; # All integrations (default + extra):