函数计算FC环境使用ARMS Golang探针

函数计算内置的Go运行时支持接入ARMS(Application Real-Time Monitoring Service)应用监控。本文介绍如何将Go运行时接入ARMS应用监控。

背景信息

函数计算无缝对接ARMS应用监控平台后,您可以通过ARMS应用监控平台对目标函数进行监控追踪,获取相关信息,例如实例级别的可观测性、链路追踪信息、Go Runtime指标、CPU Profiling信息等。

前提条件

Go版本在1.18及以上。

获取License Key

通过OpenAPI获取LicenseKey,具体方法,参见DescribeTraceLicenseKey - 列出LicenseKey

方式一:在FC中直接使用编译后的Go二进制文件创建函数

  1. 使用ARMS Go探针编译Go应用,具体操作,请参见编译Go二进制文件

  2. 在函数计算中上传运行编译后的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