Das vorliegende Repository enthält den Quellcode des Datadog Agent Version 7 und Version 6. Informationen zu den Unterschieden zwischen Agent v5, Agent v6 und Agent v7 finden Sie in der Agent-Benutzerdokumentation. Darüber hinaus stellen wir hier eine Liste vorgefertigter Binärdateien für einen einfachen Installationsprozess bereit
Hinweis: Der Quellcode von Datadog Agent v5 befindet sich im dd-agent-Repository.
Die allgemeine Dokumentation des Projekts, einschließlich Anweisungen zur Installation und Entwicklung, befindet sich im Verzeichnis docs des vorliegenden Repos.
Um den Agenten zu erstellen, benötigen Sie:
$GOPATH
festlegen und $GOPATH/bin
in Ihrem Pfad haben.pip install -r requirements.txt
installieren. Dadurch wird auch Invoke aufgerufen, wenn es noch nicht installiert ist. Hinweis: Möglicherweise möchten Sie eine virtuelle Python-Umgebung verwenden, um eine Verschmutzung Ihrer systemweiten Python-Umgebung durch die Build-/Entwicklungsabhängigkeiten des Agenten zu vermeiden. Sie können mit virtualenv
eine virtuelle Umgebung erstellen und dann die invoke agent.build
Parameter --python-home-2=
und/oder --python-home-3=
verwenden (je nachdem, welche Python-Version Sie verwenden). using), um den Interpreter und die Bibliotheken der virtuellen Umgebung zu verwenden. Standardmäßig wird diese Umgebung nur für Entwicklungsabhängigkeiten verwendet, die in requirements.txt
aufgeführt sind.
Hinweis: Möglicherweise haben Sie zuvor invoke
via brew auf MacOS oder pip
auf einer anderen Plattform installiert. Wir empfehlen Ihnen, die in der Anforderungsdatei angeheftete Version zu verwenden, um eine reibungslose Entwicklungs-/Build-Erfahrung zu gewährleisten.
Hinweis: Sie können die automatische Vervollständigung für Aufrufaufgaben aktivieren. Verwenden Sie den folgenden Befehl, um die entsprechende Zeile zu Ihrer .zshrc
Datei hinzuzufügen. echo "source <(inv --print-completion-script zsh)" >> ~/.zshrc
Builds und Tests werden mit invoke
orchestriert. Geben Sie invoke --list
in einer Shell ein, um die verfügbaren Aufgaben anzuzeigen.
Um mit der Arbeit am Agenten zu beginnen, können Sie den main
erstellen:
Schauen Sie sich das Repo an: git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent
.
cd in den Projektordner: cd $GOPATH/src/github.com/DataDog/datadog-agent
.
Go-Tools installieren: invoke install-tools
(wenn ein Zeitüberschreitungsfehler auftritt, müssen Sie dem Befehl möglicherweise die GOPROXY=https://proxy.golang.org,https://goproxy.io,direct
env voranstellen).
Erstellen Sie eine Entwicklungskonfigurationsdatei datadog.yaml
in dev/dist/datadog.yaml
, die einen gültigen API-Schlüssel enthält: api_key:
. Sie können entweder mit einer leeren Datei beginnen oder die vollständige Datei verwenden, die vom Agent-Build aus Schritt 5 generiert wurde (zu finden in cmd/agent/dist/datadog.yaml
nachdem der Build abgeschlossen ist).
Erstellen Sie den Agenten mit invoke agent.build --build-exclude=systemd
.
Sie können einen benutzerdefinierten Python-Speicherort für den Agenten angeben (nützlich bei Verwendung von 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
Ausführen invoke agent.build
:
bin/agent/dist
vorgenommenen Änderungen.bin/agent/agent
.dev/dist
nach bin/agent/dist
. Weitere Informationen finden Sie unter https://github.com/DataDog/datadog-agent/blob/main/dev/dist/README.md
. Wenn Sie eine ältere Version des Agenten erstellt haben, tritt möglicherweise die Fehlermeldung auf make: *** No targets specified and no makefile found. Stop.
. Um das Problem zu lösen, sollten Sie CMakeCache.txt
mit rm rtloader/CMakeCache.txt
aus dem Ordner rtloader
entfernen.
Bitte beachten Sie, dass der Trace-Agent separat erstellt und ausgeführt werden muss.
Weitere Informationen finden Sie im Agent-Entwicklerhandbuch. Anweisungen zum Einrichten einer Windows-Entwicklungsumgebung finden Sie unter Windows Dev Env.
Führen Sie Unit-Tests mit invoke test
aus.
invoke test --targets=./pkg/aggregator
Sie können invoke linter.go
auch verwenden, um nur die Go-Linters auszuführen.
invoke linter.go
Wenn Sie Code testen, der vom RTloader abhängt, erstellen und installieren Sie ihn zuerst.
invoke rtloader.make && invoke rtloader.install
invoke test --targets=./pkg/collector/python
Sie können den Agenten ausführen mit:
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
Die Datei bin/agent/dist/datadog.yaml
wird von invoke agent.build
aus dev/dist/datadog.yaml
kopiert und muss einen gültigen API-Schlüssel enthalten.
Um eine JMX-basierte Prüfung lokal ausführen zu können, müssen Sie über Folgendes verfügen:
jar
, kopiert nach dev/dist/jmx/jmxfetch.jar
java
ist in Ihrem $PATH
verfügbarAusführliche Anweisungen finden Sie unter JMX-Prüfungen
Informationen und Hilfe zum Beitragen von Code zu diesem Projekt finden Sie im Verzeichnis docs/dev
des vorliegenden Repos.
Die Benutzerbereichskomponenten des Datadog-Agenten sind unter der Apache-Lizenz, Version 2.0, lizenziert. Der BPF-Code ist unter der General Public License, Version 2.0, lizenziert.