全部產品
Search
文件中心

Application Real-Time Monitoring Service:Function ComputeFC環境使用ARMS Golang探針

更新時間:Oct 25, 2024

Function Compute內建的Go運行時支援接入ARMS(Application Real-Time Monitoring Service)應用監控。本文介紹如何將Go運行時接入ARMS應用監控。

背景資訊

Function Compute無縫對接ARMS應用監控平台後,您可以通過ARMS應用監控平台對目標函數進行監控追蹤,擷取相關資訊,例如執行個體層級的可觀測性、鏈路追蹤資訊、Go Runtime指標、CPU Profiling資訊等。

前提條件

Go版本在1.18及以上。

擷取License Key

通過OpenAPI擷取LicenseKey,具體方法,參見DescribeTraceLicenseKey - 列出LicenseKey

方式一:在FC中直接使用編譯後的Go二進位檔案建立函數

  1. 使用ARMS Go探針編譯Go應用,具體操作,請參見編譯Go二進位檔案

  2. 在Function Compute中上傳運行編譯後的Go二進位檔案,具體操作,請參見建立事件函數

    image

  3. 配置環境變數。

    TYPE_IS_ARMS=true
    ARMS_APP_NAME=xxx   # 應用程式名稱。
    ARMS_REGION_ID=xxx   # 對應的阿里雲帳號的RegionID。
    ARMS_LICENSE_KEY=xxx   # 擷取到的LicenseKey。

    image

  4. 完成配置後運行函數,即可在ARMS控制台應用監控 > 應用列表頁面看到上述配置的應用函數。

    單擊應用程式名稱,在應用概覽頁面可以查看到該函數接受到的請求數、錯誤數以及處理的平均耗時,同時能查看到函數內部其他的調用資料。

    image

方式二:通過FC的應用中心構建Go應用

  1. s.yaml中修改actions內容。

    • 以下範例程式碼使用的是杭州地區的下載地址,請根據對應作業系統和地區替換編譯工具下載地址,具體地址請參見擷取下載地址

    • LicenseKey需替換為實際擷取到的LicenseKey。

    edition: 3.0.0
    name: hello-world-app
    access: "{{ access }}"
    
    vars: # 全域變數
      region: "{{ region }}"
    
    resources:
      hello_world:
        component: fc3 
        actions:       
          pre-${regex('deploy|local')}: 
            - run: GO111MODULE=on go mod tidy
              path: ./code
            - run: wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo
              path: ./code
            - run: chmod +x instgo
              path: ./code
            - run: GOOS=linux GOARCH=amd64 CGO_ENABLED=0 ./instgo build --licenseKey="{licenseKey}" --cacheDir=./ -- -o target/main main.go
              path: ./code
        props:
          region: ${vars.region}              
          functionName: "{{ functionName }}"
          description: 'hello world by serverless devs'
          runtime: "{{ runtime }}"
          code: ./code/target
          handler: main
          memorySize: 128
          timeout: 10
          # triggers:
          #   - triggerName: httpTrigger # 觸發器名稱
          #     triggerType: http # 觸發器類型
          #     description: 'xxxx'
          #     qualifier: LATEST # 觸發服務的版本
          #     triggerConfig:
          #       authType: anonymous # 鑒權類型,可選值:anonymous、function
          #       disableURLInternet: false # 是否禁用公網存取 URL
          #       methods: # HTTP 觸發器支援的存取方法,可選值:GET、POST、PUT、DELETE、HEAD
          #         - GET
          #         - POST
  2. 在FC的應用中心通過倉庫匯入應用。具體操作,請參見匯入應用

    image

  3. 應用建立完成後,進入應用詳情頁面,在資源資訊 > 函數資源地區單擊函數名稱,然後添加以下環境變數。具體操作,請參見配置環境變數

    TYPE_IS_ARMS=true
    ARMS_APP_NAME=xxx   # 應用程式名稱。
    ARMS_REGION_ID=xxx   # 對應的阿里雲帳號的RegionID。
    ARMS_LICENSE_KEY=xxx   # 擷取到的LicenseKey。

    2024-10-11_16-31-39

  4. 啟動應用,即可在ARMS控制台應用監控 > 應用列表頁面看到上述配置的應用。

    單擊應用程式名稱,在應用概覽頁面可以查看到該應用接受到的請求數、錯誤數、以及處理的平均耗時等資訊。

    image.png