現在のリポジトリには、Datadog Agent バージョン 7 とバージョン 6 のソース コードが含まれています。Agent v5、Agent v6、Agent v7 の違いについては、Agent ユーザー ドキュメントを参照してください。さらに、簡単なインストールプロセスのために、事前にパッケージ化されたバイナリのリストをここで提供します。
注: 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にリストされている開発依存関係にのみ使用されます。
注:以前に、MacOS では brew 経由でinvokeインストールしたり、他のプラットフォームでは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 でプロジェクト フォルダーに移動します: cd $GOPATH/src/github.com/DataDog/datadog-agent 。
go tools をインストールします: invoke install-tools (タイムアウト エラーが発生した場合は、 GOPROXY=https://proxy.golang.org,https://goproxy.io,direct環境変数をコマンドの前に追加する必要がある場合があります)。
有効な API キーapi_key: <API_KEY>を含む開発datadog.yaml構成ファイルをdev/dist/datadog.yamlに作成します。空のものから始めることも、ステップ 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. 。この問題を解決するには、 rm rtloader/CMakeCache.txtを使用してrtloaderフォルダーからCMakeCache.txt削除する必要があります。
トレース エージェントは個別に構築して実行する必要があることに注意してください。
詳細については、『エージェント開発者ガイド』を参照してください。 Windows 開発環境のセットアップ手順については、「Windows 開発環境」を参照してください。
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はinvoke agent.buildことによってdev/dist/datadog.yamlからコピーされ、有効な API キーが含まれている必要があります。
JMX ベースのチェックをローカルで実行するには、以下が必要です。
jarのコピーがdev/dist/jmx/jmxfetch.jarにコピーされました$PATHでjavaが利用可能詳細な手順については、「JMX チェック」を参照してください。
このプロジェクトにコードを提供する方法に関する情報とヘルプは、現在のリポジトリのdocs/devディレクトリにあります。
Datadog エージェントのユーザー空間コンポーネントは、Apache License バージョン 2.0 に基づいてライセンスされています。 BPF コードは、General Public License バージョン 2.0 に基づいてライセンスされています。