現在のリポジトリには、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=
および/または--python-home-3=
を呼び出します (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:
を含む開発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 に基づいてライセンスされています。