Настоящий репозиторий содержит исходный код агента 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=<venv_path> и/или --python-home-3=<venv_path> (в зависимости от версии 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: <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.jarjava доступна по вашему $PATHПодробные инструкции см. в разделе «Проверки JMX».
Вы найдете информацию и помощь о том, как внести код в этот проект, в каталоге docs/dev текущего репозитория.
Компоненты пользовательского пространства агента Datadog лицензируются по лицензии Apache версии 2.0. Код BPF лицензируется по Стандартной общественной лицензии версии 2.0.