全部產品
Search
文件中心

Application Real-Time Monitoring Service:手動安裝Golang探針

更新時間:Aug 18, 2026

為Golang應用安裝探針後,ARMS即可開始監控Golang應用,您可以查看應用拓撲、調用鏈路、SQL分析等一系列監控資料。本文介紹如何為Go應用手動安裝探針。

說明

前提條件

  • 確保您的編譯環境和公網或阿里雲內網連通,且編譯環境所在安全性群組已開放8080、9990、80、443的TCP出方向許可權。

  • 檢查您的網路環境。具體要求,請參見Golang應用監控網路設定。

  • 檢查您的編譯環境作業系統和架構,以及Go版本和架構版本。具體要求,請參見ARMS應用監控支援的Go組件和架構。

步驟一:編譯Golang應用鏡像

使用 ARMS Go 應用監控時,僅需在編譯時間使用 instgo 工具,在原有的 go build 命令前添加 instgo 首碼即可完成探針注入。業務代碼本身無需任何改動,也不需要額外整合 OpenTelemetry SDK。instgo 探針已基於 OpenTelemetry 標準實現自動化埋點,編譯時間自動在 AST 文法樹分析階段插入監控代碼。

  1. (可選)若專案在編譯時間包含vendor目錄,請在go build後添加-mod=vendor。

  2. 使用wget命令下載編譯工具instgo,請根據編譯環境和編譯機器所在地區,選擇對應的下載地址。

    需要注意,instgo 在編譯時間會觸發自動更新,請將 instgo 儲存在編譯使用者具有修改許可權的目錄下。

    說明
    • Instgo 是 ARMS 提供的 Golang 應用編譯工具,使用 instgo 編譯您的 Golang 專案後,ARMS 即可開始監控您的 Golang 應用。

    • 各地區下載的編譯工具是相同的,如果您的公網環境可以訪問OSS地址,可以直接使用對應作業系統和架構的杭州公網地址擷取編譯工具。

    展開查看對應的下載命令

    Linux(AMD64)

    公網地址

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo

    Linux(ARM64)

    公網地址

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-arm64" -O instgo

    Mac(ARM64)

    公網地址

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-arm64" -O instgo

    Mac(AMD64)

    公網地址

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-amd64" -O instgo

    Windows(AMD64)

    公網地址

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-windows-amd64.exe" -O instgo.exe

  3. 為編譯工具賦予可執行許可權。

    Linux/Mac

    # 賦予可執行許可權
    chmod +x instgo

    Windows

    Windows中無需賦予可執行許可權。

  4. (可選)配置uid作為編譯參數。

    重要

    如果您跳過該步,instgo會預設為您安裝最新版本的ARMS探針。

    使用set命令配置uid或者licensekey作為編譯參數。

    instgo set --uid={YourAliyunUid} //需要使用instgo 1.4.5及以上版本,uid為阿里雲主帳號uid
  5. 將instgo作為首碼添加到您原有的編譯命令前並執行編譯。

    instgo go build {arg1} {arg2} {arg3}

    如果您使用go install編譯專案,也可以直接將instgo作為首碼添加到您原有的編譯命令前並執行編譯。

  6. 使用上一步編譯的二進位檔案構建鏡像。

步驟二:配置環境變數

  • 混合編譯後,您需要手動為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檔案。

FROM golang:1.21 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo
RUN chmod +x instgo
RUN ./instgo go build -o myapp .

FROM debian:bookworm-slim
WORKDIR /app
COPY --from=builder /app/myapp .
ENV ARMS_ENABLE=true
ENV ARMS_APP_NAME=AppName
ENV ARMS_REGION_ID=regionId
ENV ARMS_LICENSE_KEY=licenseKey
EXPOSE 8080
CMD ["./myapp"]

結果驗證

約一分鐘後,若Golang應用出現在ARMS控制台的應用監控 > 應用列表頁面中且有資料上報,則說明接入成功。