El repositorio actual contiene el código fuente de Datadog Agent versión 7 y versión 6. Consulte la documentación del usuario del Agente para obtener información sobre las diferencias entre Agent v5, Agent v6 y Agent v7. Además, aquí proporcionamos una lista de archivos binarios preempaquetados para facilitar el proceso de instalación.
Nota: el código fuente de Datadog Agent v5 se encuentra en el repositorio de dd-agent.
La documentación general del proyecto, incluidas las instrucciones de instalación y desarrollo, se encuentra en el directorio de documentos del presente repositorio.
Para construir el Agente necesitas:
$GOPATH
y tener $GOPATH/bin
en tu ruta.pip install -r requirements.txt
Esto también activará Invoke si aún no está instalado. Nota: es posible que desee utilizar un entorno virtual de Python para evitar contaminar el entorno de Python de todo el sistema con las dependencias de compilación/desarrollo del agente. Puede crear un entorno virtual usando virtualenv
y luego usar los parámetros invoke agent.build
--python-home-2=
y/o --python-home-3=
(dependiendo de las versiones de Python que esté usando) para utilizar el intérprete y las bibliotecas del entorno virtual. De forma predeterminada, este entorno solo se utiliza para las dependencias de desarrollo enumeradas en requirements.txt
.
Nota: Es posible que hayas instalado previamente invoke
via brew en MacOS o pip
en cualquier otra plataforma. Le recomendamos que utilice la versión fijada en el archivo de requisitos para una experiencia de desarrollo/compilación fluida.
Nota: Puede habilitar la finalización automática para tareas de invocación. Utilice el siguiente comando para agregar la línea apropiada a su archivo .zshrc
. echo "source <(inv --print-completion-script zsh)" >> ~/.zshrc
Las compilaciones y pruebas se organizan con invoke
, escriba invoke --list
en un shell para ver las tareas disponibles.
Para comenzar a trabajar en el Agente, puede crear la rama main
:
Consulte el repositorio: git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent
.
cd en la carpeta del proyecto: cd $GOPATH/src/github.com/DataDog/datadog-agent
.
Instale go tools: invoke install-tools
(si tiene un error de tiempo de espera, es posible que deba anteponer GOPROXY=https://proxy.golang.org,https://goproxy.io,direct
env var al comando).
Cree un archivo de configuración de desarrollo datadog.yaml
en dev/dist/datadog.yaml
, que contenga una clave API válida: api_key:
. Puede comenzar con uno vacío o usar el completo generado por la compilación del Agente en el Paso 5 (ubicado en cmd/agent/dist/datadog.yaml
una vez finalizada la compilación).
Cree el agente invoke agent.build --build-exclude=systemd
.
Puede especificar una ubicación de Python personalizada para el agente (útil cuando se utilizan 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
Ejecutando invoke agent.build
:
bin/agent/dist
.bin/agent/agent
.dev/dist
a bin/agent/dist
. Consulte https://github.com/DataDog/datadog-agent/blob/main/dev/dist/README.md
para obtener más información. Si creó una versión anterior del agente, es posible que obtenga el error make: *** No targets specified and no makefile found. Stop.
. Para resolver el problema, debe eliminar CMakeCache.txt
de la carpeta rtloader
con rm rtloader/CMakeCache.txt
.
Tenga en cuenta que el agente de seguimiento debe crearse y ejecutarse por separado.
Consulte la Guía para desarrolladores de agentes para obtener más detalles. Para obtener instrucciones sobre cómo configurar un entorno de desarrollo de Windows, consulte Windows Dev Env.
Ejecute pruebas unitarias utilizando invoke test
.
invoke test --targets=./pkg/aggregator
También puedes usar invoke linter.go
para ejecutar solo los linters go.
invoke linter.go
Cuando pruebe el código que depende de rtloader, compílelo e instálelo primero.
invoke rtloader.make && invoke rtloader.install
invoke test --targets=./pkg/collector/python
Puede ejecutar el agente con:
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
El archivo bin/agent/dist/datadog.yaml
se copia de dev/dist/datadog.yaml
mediante invoke agent.build
y debe contener una clave de API válida.
Para ejecutar una verificación basada en JMX localmente, debe tener:
jar
JMXFetch copiado en dev/dist/jmx/jmxfetch.jar
java
disponible en tu $PATH
Para obtener instrucciones detalladas, consulte Comprobaciones JMX.
Encontrará información y ayuda sobre cómo contribuir con código a este proyecto en el directorio docs/dev
del repositorio actual.
Los componentes del espacio de usuario del agente Datadog tienen la licencia Apache, versión 2.0. El código BPF tiene la licencia Pública General, Versión 2.0.