Le présent référentiel contient le code source de l'Agent Datadog version 7 et version 6. Veuillez vous référer à la documentation utilisateur de l'Agent pour plus d'informations sur les différences entre l'Agent v5, l'Agent v6 et l'Agent v7. De plus, nous fournissons ici une liste de binaires préemballés pour un processus d'installation facile.
Remarque : le code source de Datadog Agent v5 se trouve dans le référentiel dd-agent.
La documentation générale du projet, y compris les instructions d'installation et de développement, se trouve dans le répertoire docs du présent dépôt.
Pour créer l'agent dont vous avez besoin :
$GOPATH
et avoir $GOPATH/bin
dans votre chemin.pip install -r requirements.txt
Cela permettra également d'extraire Invoke s'il n'est pas encore installé. Remarque : vous souhaiterez peut-être utiliser un environnement virtuel Python pour éviter de polluer votre environnement Python à l'échelle du système avec les dépendances de build/dev de l'agent. Vous pouvez créer un environnement virtuel à l'aide de virtualenv
, puis utiliser les paramètres invoke agent.build
--python-home-2=
et/ou --python-home-3=
(selon les versions de Python que vous utilisez using) pour utiliser l'interpréteur et les bibliothèques de l'environnement virtuel. Par défaut, cet environnement n'est utilisé que pour les dépendances de développement répertoriées dans requirements.txt
.
Remarque : Vous avez peut-être déjà installé invoke
via Brew sur MacOS ou pip
sur n'importe quelle autre plate-forme. Nous vous recommandons d'utiliser la version épinglée dans le fichier d'exigences pour une expérience de développement/build fluide.
Remarque : Vous pouvez activer la saisie semi-automatique pour les tâches d'appel. Utilisez la commande ci-dessous pour ajouter la ligne appropriée à votre fichier .zshrc
. echo "source <(inv --print-completion-script zsh)" >> ~/.zshrc
Les builds et les tests sont orchestrés avec invoke
, tapez invoke --list
sur un shell pour voir les tâches disponibles.
Pour commencer à travailler sur l'Agent, vous pouvez créer la branche main
:
Consultez le dépôt : git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent
.
cd dans le dossier du projet : cd $GOPATH/src/github.com/DataDog/datadog-agent
.
Installez go tools : invoke install-tools
(si vous avez une erreur de délai d'attente, vous devrez peut-être ajouter GOPROXY=https://proxy.golang.org,https://goproxy.io,direct
env var à la commande).
Créez un fichier de configuration de développement datadog.yaml
dans dev/dist/datadog.yaml
, contenant une clé API valide : api_key:
. Vous pouvez soit commencer avec un fichier vide, soit utiliser celui complet généré par la build de l'agent à partir de l'étape 5 (situé dans cmd/agent/dist/datadog.yaml
une fois la build terminée).
Créez l'agent avec invoke agent.build --build-exclude=systemd
.
Vous pouvez spécifier un emplacement Python personnalisé pour l'agent (utile lors de l'utilisation de 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
Exécution invoke agent.build
:
bin/agent/dist
.bin/agent/agent
.dev/dist
vers bin/agent/dist
. Voir https://github.com/DataDog/datadog-agent/blob/main/dev/dist/README.md
pour plus d'informations. Si vous avez créé une ancienne version de l'agent, l'erreur make: *** No targets specified and no makefile found. Stop.
. Pour résoudre le problème, vous devez supprimer CMakeCache.txt
du dossier rtloader
avec rm rtloader/CMakeCache.txt
.
Veuillez noter que l'agent de trace doit être créé et exécuté séparément.
Veuillez vous référer au Guide du développeur d'agents pour plus de détails. Pour obtenir des instructions sur la configuration d’un environnement de développement Windows, reportez-vous à Windows Dev Env.
Exécutez des tests unitaires à l’aide invoke test
.
invoke test --targets=./pkg/aggregator
Vous pouvez également utiliser invoke linter.go
pour exécuter uniquement les linters go.
invoke linter.go
Lorsque vous testez du code qui dépend de rtloader, créez-le et installez-le d'abord.
invoke rtloader.make && invoke rtloader.install
invoke test --targets=./pkg/collector/python
Vous pouvez exécuter l'agent avec :
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
Le fichier bin/agent/dist/datadog.yaml
est copié de dev/dist/datadog.yaml
en invoke agent.build
et doit contenir une clé API valide.
Pour exécuter une vérification basée sur JMX localement, vous devez disposer :
jar
JMXFetch copié dans dev/dist/jmx/jmxfetch.jar
java
disponible sur votre $PATH
Pour des instructions détaillées, voir Vérifications JMX
Vous trouverez des informations et de l'aide sur la façon de contribuer au code de ce projet dans le répertoire docs/dev
du dépôt actuel.
Les composants de l’espace utilisateur de l’agent Datadog sont sous licence Apache, version 2.0. Le code BPF est sous licence General Public License, version 2.0.