为Golang应用安装探针

在为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。具体方法,请参见DescribeTraceLicenseKey - 列出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

      指定ARMS的LicenseKey。

      是(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

      指定ARMS的LicenseKey。

      --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,然后选择具体的镜像版本。

    Zjyqn9Csms

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

    qVjKh7KK96

  3. 单击创建应用

3.2 访问测试

  1. 为应用添加公网访问地址。具体操作,请参见为应用绑定CLB

    oG7Zx8icdv

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

5. 查看应用监控

在SAE侧查看

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

ZzhYn22HbM

在ARMS侧查看

  1. 登录ARMS控制台

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

    nsyE8WuFPg

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

    5RZ1EeP2Mx

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

    eysHShmevA