全部產品
Search
文件中心

Container Service for Kubernetes:Golang應用監控

更新時間:Aug 29, 2026

對於運行在ACK叢集中的Golang應用,您可以通過安裝ack-onepilot組件並構建應用的容器鏡像,並通過編譯工具instgo編譯應用的Golang二進位檔案。完成部署後,您便能在Application Real-Time Monitoring Service (ARMS)中查看對應應用的應用拓撲、介面調用、資料庫分析等監控資料。

前提條件

步驟一:安裝ARMS應用監控接入組件ack-onepilot

重要

舊版應用監控組件arms-pilot已不再維護,您可以安裝升級後的ack-onepilot組件用於監控您的應用,ack-onepilot完全相容arms-pilot,您無需修改應用配置即可無縫接入ack-onepilot。更多資訊,請參見如何卸載arms-pilot和安裝ack-onepilot。

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表。

  2. 在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理。

  3. 在日誌與監控地區,定位ack-onepilot組件,單擊組件卡片的安裝,按照頁面指引在對話方塊配置相關的參數(建議使用預設值),單擊確認完成組件的安裝。

    說明

    請確保ack-onepilot的版本為3.2.4及以上。ack-onepilot組件預設支援1000個Pod規模,叢集Pod每超過1000個,ack-onepilot資源對應的CPU請增加0.5核、記憶體請增加512MB。

    安裝完成後,您可以在組件管理頁面升級、配置或卸載ack-onepilot組件。

步驟二:授予ARMS資源的存取權限

  • 如需監控ACK叢集應用,但ACK叢集中不存在addon.arms.token,請執行以下操作手動為叢集授予ARMS資源的存取權限。如果已經存在addon.arms.token,則無需執行授權操作。

    說明

    當ACK叢集中存在addon.arms.token時,ARMS能夠自動完成免密授權過程。通常情況下,ACK託管叢集預設配備了addon.arms.token。然而,對於一些較早建立的ACK託管叢集來說,可能存在缺少addon.arms.token的情形。

    1. 檢查addon.arms.token是否存在。

      查看叢集是否存在addon.arms.token

      1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表。

      2. 在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇組態管理 > 保密字典。

      3. 在保密字典頁面,選擇命名空間為kube-system,查看addon.arms.token是否存在。

    2. 如果addon.arms.token存在,無需執行後續授權操作。否則,請執行以下操作手動為叢集授予ARMS資源的存取權限。

      1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表。

      2. 在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇叢集資訊。

      3. 在基本資料頁簽下,單擊叢集資源地區內的Worker RAM 角色右側的連結。

      4. 在角色頁面的許可權管理頁簽上,單擊新增授權。

      5. 選擇許可權為AliyunARMSFullAccess,然後單擊確定。

  • 如需監控對接了ECI的ACK託管叢集應用,請在存取控制快速授權頁面完成授權,然後重啟ack-onepilot組件下的所有Pod。

步驟三:編譯Golang二進位檔案

您可以通過使用增強Golang編輯工具instgo,並結合本地的Golang編譯環境(Golang版本需為1.18以上),來編譯Golang程式,以產生能夠向Application Real-Time Monitoring Service (ARMS)上報監控資料的二進位檔案。

  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. 使用上一步編譯的二進位檔案構建鏡像。

步驟四:為Golang應用開啟ARMS應用監控

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表。

  2. 在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作負載 > 無狀態。

  3. 在無狀態頁面,單擊目標應用右側image > YAML 編輯。

  4. 在YAML檔案中將以下labels添加到spec.template.metadata層級下。

    labels:
      aliyun.com/app-language: golang # Go應用必填,標明此應用是Go應用。
      armsPilotAutoEnable: 'on'
      armsPilotCreateAppName: "<YOUR-DEPLOYMENT-NAME>"    #請將<YOUR-DEPLOYMENT-NAME>替換為您的應用程式名稱。

步驟五:查看監控詳情

  1. 等待約一分鐘後,在ARMS控制台的應用監控 > 應用列表頁面查看Golang應用及其上報的資料。

    應用列表中將顯示名稱為 otel-go-server 的應用(綠色狀態表示正常),可查看每秒請求數、錯誤率、平均回應時間等監控指標,確認資料上報成功。

  2. 單擊應用程式名稱,進入ARMS控制台的應用監控頁面查看監控詳情。更多資訊,請參見應用總覽。

(可選)步驟六:釋放資源

如果無需繼續監控當前應用,請卸載探針。具體操作,請參見卸載Golang探針。

相關文檔

如需瞭解如何將ACK叢集下的Java應用或Python應用接入ARMS應用監控,請參見Java應用監控、Python應用監控。