当前存储库包含 Datadog Agent 版本 7 和版本 6 的源代码。有关 Agent v5、Agent v6 和 Agent v7 之间差异的信息,请参阅 Agent 用户文档。此外,我们在此处提供了预打包的二进制文件列表,以便于安装过程
注意: Datadog Agent v5 的源代码位于 dd-agent 存储库中。
该项目的一般文档(包括安装和开发说明)位于当前存储库的 docs 目录下。
要构建代理,您需要:
$GOPATH
并在路径中包含$GOPATH/bin
。pip install -r requirements.txt
安装它们,如果尚未安装,这也会引入 Invoke。注意:您可能希望使用 python 虚拟环境,以避免代理构建/开发依赖项污染系统范围的 python 环境。您可以使用virtualenv
创建虚拟环境,然后使用invoke agent.build
参数--python-home-2=
和/或--python-home-3=
(取决于您所使用的 python 版本) using) 使用虚拟环境的解释器和库。默认情况下,此环境仅用于requirements.txt
中列出的开发依赖项。
注意:您之前可能已经在 MacOS 上通过brew安装了invoke
,或者在任何其他平台上安装了pip
。我们建议您使用需求文件中固定的版本,以获得流畅的开发/构建体验。
注意:您可以启用调用任务的自动完成功能。使用以下命令将适当的行添加到您的.zshrc
文件中。 echo "source <(inv --print-completion-script zsh)" >> ~/.zshrc
构建和测试是通过invoke
编排的,在 shell 上输入invoke --list
以查看可用的任务。
要开始使用代理,您可以构建main
分支:
查看存储库: git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent
。
cd 进入项目文件夹: cd $GOPATH/src/github.com/DataDog/datadog-agent
。
安装 go tools: invoke install-tools
(如果出现超时错误,您可能需要在命令前面添加GOPROXY=https://proxy.golang.org,https://goproxy.io,direct
env var)。
在dev/dist/datadog.yaml
中创建开发datadog.yaml
配置文件,其中包含有效的 API 密钥: api_key:
。您可以从一个空的开始,也可以使用第 5 步中代理构建生成的完整的一个(构建完成后位于cmd/agent/dist/datadog.yaml
中)。
使用invoke agent.build --build-exclude=systemd
构建代理。
您可以为代理指定自定义 Python 位置(在使用 virtualenvs 时很有用):
invoke agent.build
--python-home-2=$GOPATH/src/github.com/DataDog/datadog-agent/venv2
--python-home-3=$GOPATH/src/github.com/DataDog/datadog-agent/venv3
运行invoke agent.build
:
bin/agent/dist
中所做的任何更改。bin/agent/agent
。dev/dist
复制到bin/agent/dist
。有关更多信息,请参阅https://github.com/DataDog/datadog-agent/blob/main/dev/dist/README.md
。如果您构建了旧版本的代理,则可能会出现错误make: *** No targets specified and no makefile found. Stop.
。要解决此问题,您应该使用rm rtloader/CMakeCache.txt
从rtloader
文件夹中删除CMakeCache.txt
。
请注意,跟踪代理需要单独构建和运行。
请参阅代理开发者指南了解更多详细信息。有关设置 Windows 开发环境的说明,请参阅 Windows Dev Env。
使用invoke test
运行单元测试。
invoke test --targets=./pkg/aggregator
您还可以使用invoke linter.go
来仅运行 go linter。
invoke linter.go
当测试依赖于 rtloader 的代码时,首先构建并安装它。
invoke rtloader.make && invoke rtloader.install
invoke test --targets=./pkg/collector/python
您可以使用以下方式运行代理:
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
文件bin/agent/dist/datadog.yaml
是通过invoke agent.build
从dev/dist/datadog.yaml
复制的,并且必须包含有效的 api 密钥。
为了在本地运行基于 JMX 的检查,您必须具有:
jar
的副本复制到dev/dist/jmx/jmxfetch.jar
java
在你的$PATH
上可用有关详细说明,请参阅 JMX 检查
您将在当前存储库的docs/dev
目录下找到有关如何向该项目贡献代码的信息和帮助。
Datadog 代理用户空间组件根据 Apache 许可证版本 2.0 获得许可。 BPF 代码根据通用公共许可证 2.0 版获得许可。