为Golang应用安装探针

更新时间:
复制 MD 格式

在为Golang应用手动安装ARMS探针并部署到SAE之后,您就可以通过ARMS监控该应用。通过ARMS,您可以查看包括应用拓扑、调用链路分析、SQL性能分析等在内的多种监控数据。本文主要介绍为应用手动安装ARMS探针并部署至SAE

前提条件

限制条件

此功能仅适用于通过镜像部署的Go语言应用。

步骤概述

  1. 准备项目:本文以Demo项目为例进行说明。

  2. 制作镜像并上传至ACR镜像仓库:把项目制作成镜像,并推送至阿里云ACR仓库,为在SAE上创建微服务应用做准备。

  3. 创建应用:将上传到镜像仓库的镜像部署到SAE,并访问应用。

  4. 查看应用监控:查看应用产生的多种监控数据。

1. 准备项目

上传Go语言项目至您准备好的环境中。

2. 制作镜像并推送至镜像仓库

2.1 制作镜像

本文只介绍下载编译工具和构建应用的命令。

  1. 下载编译工具。

    # 下载wget命令。
    RUN yum -y install wget
    # 本文以从杭州公网地址下载编译工具为例进行说明。
    RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo

    在实际的生产环境中,请根据构建机所在地域,选择对应的下载地址。具体的下载地址,请参见各地域对应的下载命令

    说明

    各地域下载的编译工具是相同的,如果您的公网环境可以访问OSS地址,可以直接使用对应操作系统和架构的杭州公网地址获取编译工具。

  2. 为二进制文件添加可执行权限。

    RUN chmod +x instgo
  3. 通过OpenAPI获取LicenseKey。具体方法,请参见列出LicenseKey

  4. 使用./instgo build替换go build命令构建应用。

    # 使用./instgo build命令编译Go项目。
    # 把{licenseKey}替换为上一步获取到的LicenseKey。
    RUN ./instgo build --licenseKey="{licenseKey}" --cacheDir=./

    如果您需要测试编译效果,或暂时无法获取到LicenseKey,可以添加--dev来开启Dev编译模式,此模式下不需要传入LicenseKey。

    说明

    如果您原本编译命令中含有后续的编译参数,请在所有选项添加完毕后,添加--分隔符,并将编译参数按照原有格式添加在后面。例如:

    RUN ./instgo build --licenseKey="{licenseKey}" --cacheDir=./ -- {arg1} {arg2} ...
    • lnstgo常见命令与释义。

      命令

      flag

      接收参数类型

      含义

      是否必传

      build(编译)

      --licenseKey, -l

      string

      指定ARMSLicenseKey。

      是(dev 模式下可不传)

      --dev

      -

      指定编译模式为开发模式,此模式下无需指定LicenseKey即可编译,用于测试基本可用性。

      重要

      --agentVersion

      string

      指定探针版本。

      --agentPath

      string

      指定本地探针路径。

      --cacheDir

      string

      指定探针缓存目录。

      --regionId, -r

      string

      指定拉取探针包依赖的OSS所在RegionId,默认为cn-hangzhou。

      --timeout, -t

      int

      指定拉取探针超时时间,默认为180秒。

      --verbose, -v

      -

      开启后,打出详细的编译日志。

      --vpc

      -

      开启后,默认走内网拉取探针包依赖。

      clean

      (清理产物)

      -

      -

      -

      -

      update(更新)

      --licenseKey, -l

      string

      指定ARMSLicenseKey。

      --cacheDir

      string

      指定探针缓存目录。

      --regionId, -r

      string

      指定拉取探针包依赖的OSS所在RegionId,默认为cn-hangzhou。

      --timeout, -t

      int

      指定拉取探针超时时间,默认为180秒。

      --vpc

      开启后,默认通过内网拉取探针包依赖。

      version

      (输出版本号)

      -

      -

      -

      -

    • 初次编译时,探针会默认被下载到/opt目录下,可以使用--cacheDir flag指定缓存目录。

2.2 推送镜像至镜像仓库

将制作成功的Go语言镜像推送至阿里云镜像仓库。具体操作,请参见推送拉取镜像(企业版)推送拉取镜像(个人实例版)

3. 创建Go应用

本文只介绍关键步骤。创建应用的详细步骤,请参见使用镜像部署应用

3.1 创建应用

  1. 设置镜像面板,选择技术栈语言Go,然后选择具体的镜像版本。

    选择 我的阿里云镜像 页签和 镜像服务个人版,在 选择镜像版本 下拉框中选择 go-demo-2

  2. 高级设置页面的应用监控区域,开启应用监控

    开启前需先修改应用的自定义镜像,在编译构建过程中手动安装探针。ARMS 为 SAE 用户每月提供 200 GB 免费额度。启用后,SAE 可提供请求数、错误数、耗时、实例 GC、堆内存等实时监控信息,并支持调用链分析功能。

  3. 单击创建应用

3.2 访问测试

  1. 为应用添加公网访问地址。具体操作,请参见为应用绑定CLB并生成应用的公网或私网访问IP

    配置完成后,在应用访问设置页面的公网访问地址区域,可查看已添加的公网 CLB 访问记录,包括 IP 地址、端口(如 2222)及协议(如 HTTP)。

  2. 复制公网访问地址,在浏览器进行访问测试。

5. 查看应用监控

SAE侧查看

进入目标应用的基础信息页面,然后在左侧导航栏单击应用监控,最后在应用监控页面查看监控数据

应用概览 页面展示请求数、错误数、平均耗时、实例数等监控指标及对应趋势图表,表明应用监控数据已正常采集。

ARMS侧查看

  1. 登录ARMS控制台

  2. 在左侧导航栏选择应用监控 > 应用列表,然后在顶部菜单栏选择目标地域。

    页面将展示已接入应用的 每秒请求数错误率平均响应时间CVE漏洞数智能洞察响应时间趋势 等监控指标,确认应用数据采集正常。

  3. 应用列表页面的搜索框,搜索目标应用,然后单击目标应用名称。

  4. 在监控详情页面查看监控数据。

    eysHShmevA