biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / networking / dd-agent / datadog-agent.nix
blobe9c89657f803e3d67d08cab695b30bb0b98a5777
1 { lib
2 , stdenv
3 , cmake
4 , buildGoModule
5 , makeWrapper
6 , fetchFromGitHub
7 , pythonPackages
8 , pkg-config
9 , systemd
10 , hostname
11 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
12 , extraTags ? [ ]
13 , testers
14 , datadog-agent
17 let
18   # keep this in sync with github.com/DataDog/agent-payload dependency
19   payloadVersion = "5.0.97";
20   python = pythonPackages.python;
21   owner   = "DataDog";
22   repo    = "datadog-agent";
23   goPackagePath = "github.com/${owner}/${repo}";
24   version = "7.50.3";
26   src = fetchFromGitHub {
27     inherit owner repo;
28     rev = version;
29     hash = "sha256-AN5BruLPyrpIGSUkcYkZC0VgItk9NHiZTXstv6j9TlY=";
30   };
31   rtloader = stdenv.mkDerivation {
32     pname = "datadog-agent-rtloader";
33     src = "${src}/rtloader";
34     inherit version;
35     nativeBuildInputs = [ cmake ];
36     buildInputs = [ python ];
37     cmakeFlags = ["-DBUILD_DEMO=OFF" "-DDISABLE_PYTHON2=ON"];
38   };
40 in buildGoModule rec {
41   pname = "datadog-agent";
42   inherit src version;
44   doCheck = false;
46   vendorHash = "sha256-Rn8EB/6FHQk9COlOaxm4TQXjGCIPZHJV2QQnPDcbRnM=";
48   subPackages = [
49     "cmd/agent"
50     "cmd/cluster-agent"
51     "cmd/dogstatsd"
52     "cmd/py-launcher"
53     "cmd/trace-agent"
54   ];
57   nativeBuildInputs = [ pkg-config makeWrapper ];
58   buildInputs = [rtloader] ++ lib.optionals withSystemd [ systemd ];
59   PKG_CONFIG_PATH = "${python}/lib/pkgconfig";
61   tags = [
62     "ec2"
63     "python"
64     "process"
65     "log"
66     "secrets"
67     "zlib"
68   ]
69   ++ lib.optionals withSystemd [ "systemd" ]
70   ++ extraTags;
72   ldflags = [
73     "-X ${goPackagePath}/pkg/version.Commit=${src.rev}"
74     "-X ${goPackagePath}/pkg/version.AgentVersion=${version}"
75     "-X ${goPackagePath}/pkg/serializer.AgentPayloadVersion=${payloadVersion}"
76     "-X ${goPackagePath}/pkg/collector/python.pythonHome3=${python}"
77     "-X ${goPackagePath}/pkg/config.DefaultPython=3"
78     "-r ${python}/lib"
79   ];
81   preBuild = ''
82     # Keep directories to generate in sync with tasks/go.py
83     go generate ./pkg/status ./cmd/agent/gui
84   '';
86   # DataDog use paths relative to the agent binary, so fix these.
87   postPatch = ''
88     sed -e "s|PyChecksPath =.*|PyChecksPath = \"$out/${python.sitePackages}\"|" \
89         -e "s|distPath =.*|distPath = \"$out/share/datadog-agent\"|" \
90         -i cmd/agent/common/path/path_nix.go
91     sed -e "s|/bin/hostname|${lib.getBin hostname}/bin/hostname|" \
92         -i pkg/util/hostname/fqdn_nix.go
93   '';
95   # Install the config files and python modules from the "dist" dir
96   # into standard paths.
97   postInstall = ''
98     mkdir -p $out/${python.sitePackages} $out/share/datadog-agent
99     cp -R --no-preserve=mode $src/cmd/agent/dist/conf.d $out/share/datadog-agent
100     rm -rf $out/share/datadog-agent/conf.d/{apm.yaml.default,process_agent.yaml.default,winproc.d}
101     cp -R $src/cmd/agent/dist/{checks,utils,config.py} $out/${python.sitePackages}
103     cp -R $src/pkg/status/templates $out/share/datadog-agent
105     wrapProgram "$out/bin/agent" \
106       --set PYTHONPATH "$out/${python.sitePackages}"'' + lib.optionalString withSystemd '' \
107       --prefix LD_LIBRARY_PATH : '' + lib.makeLibraryPath [ (lib.getLib systemd) rtloader ];
109   passthru.tests.version = testers.testVersion {
110     package = datadog-agent;
111     command = "agent version";
112   };
114   meta = with lib; {
115     description = ''
116       Event collector for the DataDog analysis service
117       -- v6 new golang implementation.
118     '';
119     homepage    = "https://www.datadoghq.com";
120     license     = licenses.bsd3;
121     maintainers = with maintainers; [ thoughtpolice domenkozar ];
122     # never built on aarch64-darwin since first introduction in nixpkgs
123     broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
124   };