目前儲存庫包含 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=
和/或--python-home-3=
(取決於您所使用的 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:
。您可以從一個空的開始,也可以使用第 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.jar
java
在你的$PATH
上可用有關詳細說明,請參閱 JMX 檢查
您將在目前儲存庫的docs/dev
目錄下找到有關如何向該專案貢獻程式碼的資訊和協助。
Datadog 代理用戶空間元件根據 Apache 許可證版本 2.0 授權。 BPF 代碼根據通用公共授權 2.0 版授權。