目前儲存庫包含 Datadog Agent 版本 7 和版本 6 的源代碼。此外,我們在此處提供了預先打包的二進位檔案列表,以便於安裝過程
注意: 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編排的,在 shell 上輸入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 env var)。
在dev/dist/datadog.yaml中建立開發datadog.yaml設定文件,其中包含有效的 API 金鑰: api_key: <API_KEY> 。您可以從一個空的開始,也可以使用第 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 Dev Env。
使用invoke test運行單元測試。
invoke test --targets=./pkg/aggregator
您也可以使用invoke linter.go來只執行 go linter。
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.jarjava在你的$PATH上可用有關詳細說明,請參閱 JMX 檢查
您將在目前儲存庫的docs/dev目錄下找到有關如何向該專案貢獻程式碼的資訊和協助。
Datadog 代理用戶空間元件根據 Apache 許可證版本 2.0 授權。 BPF 代碼根據通用公共授權 2.0 版授權。