820

0

Datadog Agent

现代监控和安全 以任何规模、任何地方查看任何堆栈、任何应用程序的内部。

Datadog Agent

圈子CI Windows 单元测试 覆盖状态 GoDoc 去报告卡

当前存储库包含 Datadog 代理版本 7 和版本 6 的源代码。有关代理 v5、代理 v6 和代理 v7 之间差异的信息,请参阅代理用户文档。此外,我们在此处提供了一个预打包二进制文件列表,以便于安装过程

注意: Datadog Agent v5 的源代码位于 dd-agent存储库中。

文档

该项目的一般文档,包括安装和开发说明,位于当前 repo的 docs 目录下。

入门

要构建代理,您需要:

  • Go1.18 或更高版本。你还需要在你的路径中设置你的 $GOPATH和拥有的。$GOPATH/bin
  • Python 3.7+ 以及用于工具的开发库。如果您要构建支持 Python 2 的代理,您还需要 Python 2.7。
  • Python 依赖项。您可以安装这些,如果尚未安装,pip install -r requirements.txt 这也会拉入Invoke 。
  • CMake 版本 3.12 或更高版本以及 C++ 编译器

注意: 您可能希望使用 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分支:

  1. 签出回购:git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent

  2. cd 进入项目文件夹:cd $GOPATH/src/github.com/DataDog/datadog-agent.

  3. 安装 go 工具:invoke install-tools.

  4. 在 中创建一个开发 datadog.yaml配置文件 dev/dist/datadog.yaml,其中包含一个有效的 API 密钥:api_key: <API_KEY>

  5. 使用 构建代理 invoke agent.build --build-exclude=systemd。 默认情况下,代理将被构建为使用 Python 3,但您可以选择要使用的 Python 版本:

    • invoke agent.build --python-runtimes 2仅适用于 Python2
    • invoke agent.build --python-runtimes 3仅适用于 Python3
    • invoke 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/distbin/agent/dist。有关 https://github.com/DataDog/datadog-agent/blob/main/dev/dist/README.md更多信息,请参阅。

    如果您构建了较旧版本的代理,您可能会遇到错误 make: *** No targets specified and no makefile found. Stop.。要解决此问题,您应该 CMakeCache.txtrtloader文件夹中删除 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

Run

您可以使用以下方式运行代理:

./bin/agent/agent run -c bin/agent/dist/datadog.yaml

该文件 bin/agent/dist/datadog.yaml由 复制而来 dev/dist/datadog.yamlinvoke agent.build并且必须包含有效的 api 密钥。

贡献代码

您将在当前 repodocs/dev目录下找到有关如何为该项目贡献代码的信息和帮助 。

执照

Datadog 代理用户空间组件在 Apache 许可证 2.0 版下获得许可。BPF 代码根据通用公共许可证 2.0 版获得许可。