為Golang應用安裝探針後,ARMS即可開始監控Golang應用,您可以查看應用拓撲、調用鏈路、SQL分析等一系列監控資料。本文介紹如何為Go應用手動安裝探針。
對於部署在Kubernetes環境的應用,不推薦手動安裝探針,建議通過安裝組件的方式接入ARMS。具體操作,請參見Container Service ACK 和容器計算服務 ACS 通過 ack-onepilot 組件安裝 Go 探針。
如果您在使用Golang探針過程中有任何問題,歡迎通過DingTalk答疑群(群號:159215000379)與我們聯絡。
前提條件
確保您的編譯環境和公網或阿里雲內網連通,且編譯環境所在安全性群組已開放8080、9990、80、443的TCP出方向許可權。
檢查您的網路環境。具體要求,請參見Golang應用監控網路設定。
檢查您的編譯環境作業系統和架構,以及Go版本和架構版本。具體要求,請參見ARMS應用監控支援的Go組件和架構。
步驟一:編譯Golang應用鏡像
(可選)若專案在編譯時間包含vendor目錄,請在
go build後添加-mod=vendor。使用
wget命令下載編譯工具instgo,請根據編譯環境和編譯機器所在地區,選擇對應的下載地址。需要注意,instgo 在編譯時間會觸發自動更新,請將 instgo 儲存在編譯使用者具有修改許可權的目錄下。
說明Instgo 是 ARMS 提供的 Golang 應用編譯工具,使用 instgo 編譯您的 Golang 專案後,ARMS 即可開始監控您的 Golang 應用。
各地區下載的編譯工具是相同的,如果您的公網環境可以訪問OSS地址,可以直接使用對應作業系統和架構的杭州公網地址擷取編譯工具。
為編譯工具賦予可執行許可權。
Linux/Mac
# 賦予可執行許可權 chmod +x instgoWindows
Windows中無需賦予可執行許可權。
(可選)配置uid作為編譯參數。
重要如果您跳過該步,instgo會預設為您安裝最新版本的ARMS探針。
使用set命令配置uid或者licensekey作為編譯參數。
instgo set --uid={YourAliyunUid} //需要使用instgo 1.4.5及以上版本,uid為阿里雲主帳號uid將instgo作為首碼添加到您原有的編譯命令前並執行編譯。
instgo go build {arg1} {arg2} {arg3}如果您使用go install編譯專案,也可以直接將instgo作為首碼添加到您原有的編譯命令前並執行編譯。
使用上一步編譯的二進位檔案構建鏡像。
步驟二:配置環境變數
混合編譯後,您需要手動為Go應用添加以下環境變數:
export ARMS_ENABLE=true export ARMS_APP_NAME=xxx # 應用程式名稱。 export ARMS_REGION_ID=xxx # 對應的阿里雲帳號的RegionID。 export ARMS_LICENSE_KEY=xxx # 步驟一擷取到的LicenseKey。說明若希望預設通過公網上報資料,可聲明環境變數
ARMS_NETWORK_STRATEGY=public。除了通過export暴露環境變數外,您也可以在編譯時間通過ldflags指定相關的環境變數。
請將
module替換為go mod中配置的module名稱,其他參數參考環境變數。instgo go build -ldflags " -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.ArmsApmName=${appName}' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.ArmsEnable=true' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.LicenseKey=${licenseKey}' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.RegionId=${regionId}'"如果你使用systemctl啟動程式,可以使用下述方式設定環境變數:
systemctl set-environment ARMS_ENABLE=true systemctl set-environment ARMS_APP_NAME=xxx # 應用程式名稱。 systemctl set-environment ARMS_REGION_ID=xxx # 對應的阿里雲帳號的RegionID。 systemctl set-environment ARMS_LICENSE_KEY=xxx # 步驟一擷取到的LicenseKey。
(可選)Docker環境安裝參考
對於Docker環境,可以參考以下Dockerfile樣本修改您的Dockerfile檔案。
### .....
ENV ARMS_ENABLE=true
ENV ARMS_APP_NAME={AppName}
ENV ARMS_REGION_ID={regionId}
ENV ARMS_LICENSE_KEY={licenseKey}
### 在下方添加自訂Dockerfile邏輯。
### ......結果驗證
約一分鐘後,若Golang應用出現在ARMS控制台的頁面中且有資料上報,則說明接入成功。
