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=<venv_path> et/ou --python-home-3=<venv_path> (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: <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.jarjava disponible sur votre $PATHPour 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.