Настоящий репозиторий содержит исходный код агента Datadog версии 7 и версии 6. Обратитесь к пользовательской документации агента для получения информации о различиях между агентом v5, агентом v6 и агентом v7. Кроме того, мы предоставляем список предварительно упакованных двоичных файлов для облегчения процесса установки здесь.
Примечание: исходный код 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
.
Примечание. Возможно, вы ранее установили invoke
через Brew на MacOS или pip
на любой другой платформе. Мы рекомендуем вам использовать версию, закрепленную в файле требований, для более удобной разработки и сборки.
Примечание. Вы можете включить автозаполнение для задач вызова. Используйте команду ниже, чтобы добавить соответствующую строку в ваш файл .zshrc
. echo "source <(inv --print-completion-script zsh)" >> ~/.zshrc
Сборки и тесты управляются с помощью invoke
, введите в оболочке invoke --list
чтобы просмотреть доступные задачи.
Чтобы начать работу над Агентом, вы можете собрать main
ветку:
Проверьте репозиторий: git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent
.
перейдите в папку проекта: cd $GOPATH/src/github.com/DataDog/datadog-agent
.
Установите инструменты go: invoke install-tools
(если у вас возникла ошибка тайм-аута, вам может потребоваться добавить к команде GOPROXY=https://proxy.golang.org,https://goproxy.io,direct
env var).
Создайте файл конфигурации datadog.yaml
для разработки в dev/dist/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.
. Чтобы решить эту проблему, вам следует удалить CMakeCache.txt
из папки rtloader
с помощью rm rtloader/CMakeCache.txt
.
Обратите внимание, что агент трассировки необходимо собирать и запускать отдельно.
Для получения более подробной информации обратитесь к Руководству разработчика агента. Инструкции по настройке среды разработки Windows см. в разделе Windows Dev Env.
Запустите модульные тесты с помощью invoke test
.
invoke test --targets=./pkg/aggregator
Вы также можете использовать invoke linter.go
для запуска только линтеров go.
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
копируется из dev/dist/datadog.yaml
при invoke agent.build
и должен содержать действительный ключ API.
Чтобы запустить проверку на основе JMX локально, вам необходимо иметь:
jar
, скопированная в dev/dist/jmx/jmxfetch.jar
java
доступна по вашему $PATH
Подробные инструкции см. в разделе «Проверки JMX».
Вы найдете информацию и помощь о том, как добавить код в этот проект, в каталоге docs/dev
текущего репозитория.
Компоненты пользовательского пространства агента Datadog лицензируются по лицензии Apache версии 2.0. Код BPF лицензируется по Стандартной общественной лицензии версии 2.0.