Datadog Agent
现代监控和安全 以任何规模、任何地方查看任何堆栈、任何应用程序的内部。
当前存储库包含 Datadog 代理版本 7 和版本 6 的源代码。有关代理 v5、代理 v6 和代理 v7 之间差异的信息,请参阅代理用户文档。此外,我们在此处提供了一个预打包二进制文件列表,以便于安装过程
注意: Datadog Agent v5 的源代码位于 dd-agent存储库中。
该项目的一般文档,包括安装和开发说明,位于当前 repo的 docs 目录下。
要构建代理,您需要:
$GOPATH
和拥有的。$GOPATH/bin
pip install -r requirements.txt
这也会拉入Invoke 。注意: 您可能希望使用 python 虚拟环境来避免代理构建/开发依赖项污染系统范围的 python 环境。您可以使用创建虚拟环境 virtualenv
,然后使用 invoke agent.build
参数 --python-home-2=<venv_path>
和/或 --python-home-3=<venv_path>
(取决于您使用的 python 版本)来使用虚拟环境的解释器和库。默认情况下,此环境仅用于 requirements.txt
.
注意: 您之前可能 invoke
在 MacOS 或 pip
任何其他平台上通过 brew 安装过。我们建议您使用固定在需求文件中的版本以获得流畅的开发/构建体验。
构建和测试使用, 在 shell 上 invoke
键入 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 工具:invoke install-tools
.
在 中创建一个开发 datadog.yaml
配置文件 dev/dist/datadog.yaml
,其中包含一个有效的 API 密钥:api_key: <API_KEY>
使用 构建代理 invoke agent.build --build-exclude=systemd
。
默认情况下,代理将被构建为使用 Python 3,但您可以选择要使用的 Python 版本:
invoke agent.build --python-runtimes 2
仅适用于 Python2invoke agent.build --python-runtimes 3
仅适用于 Python3invoke agent.build --python-runtimes 2,3
对于 Python2 和 Python3您可以为代理指定自定义 Python 位置(在使用 virtualenvs 时很有用):
invoke agent.build \
--python-runtimes 2,3 \
--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.
。要解决此问题,您应该 CMakeCache.txt
从 rtloader
文件夹中删除 rm rtloader/CMakeCache.txt
.
请注意,跟踪代理需要单独构建和运行。
有关详细信息,请参阅代理开发人员指南。有关设置 Windows 开发环境的说明,请参阅Windows 开发环境。
使用 invoke test
. 在开发过程中,添加 --skip-linters
直接跳到测试的选项。
invoke test --targets=./pkg/aggregator/... --skip-linters
在测试依赖于rtloader的代码时,首先构建并安装它。
invoke rtloader.make && invoke rtloader.install
invoke test --targets=./pkg/collector/python --skip-linters
您可以使用以下方式运行代理:
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
该文件 bin/agent/dist/datadog.yaml
由 复制而来 dev/dist/datadog.yaml
,invoke agent.build
并且必须包含有效的 api 密钥。
您将在当前 repo的 docs/dev
目录下找到有关如何为该项目贡献代码的信息和帮助 。
Datadog 代理用户空间组件在 Apache 许可证 2.0 版下获得许可。BPF 代码根据通用公共许可证 2.0 版获得许可。