手动安装Golang探针

更新时间:
复制 MD 格式

Golang应用安装探针后,云监控2.0即可开始监控Golang应用,您可以查看应用拓扑、调用链路、SQL分析等一系列监控数据。本文介绍如何为Go应用手动安装探针。

说明

前提条件

  • 确保您的编译环境和公网或阿里云内网连通,且编译环境所在安全组已开放8080、9990、80、443TCP出方向权限。

  • 检查您的网络环境。具体要求,请参见Golang应用监控网络配置

  • 检查您的编译环境操作系统和架构,以及Go版本和框架版本。具体要求,请参见ARMS应用监控支持的Go组件和框架

前提条件

  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. 使用上一步编译的二进制文件构建镜像。

步骤二:配置环境变量

  • 混合编译后,您需要手动为Go应用添加以下环境变量:

    export ARMS_ENABLE=true
    export ARMS_APP_NAME=xxx   # 应用名称。
    export ARMS_WORKSPACE=xxx   # 替换为当前Workspace名称。
    export ARMS_REGION_ID=xxx   # 对应的阿里云账号的RegionID。
    export ARMS_LICENSE_KEY=xxx   # 步骤一获取到的LicenseKey。
    export ARMS_NETWORK_STRATEGY=public   # 若希望默认通过公网上报数据,可声明该环境变量。
  • 除了通过export暴露环境变量外,您也可以在编译时通过ldflags指定相关的环境变量。

    请将module替换为go mod中配置的module名称,其他参数参考环境变量。

    instgo go build -ldflags " -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.ArmsApmName=${appName}' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.ArmsEnable=true' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.LicenseKey=${licenseKey}' -X 'github.com/alibaba/loongsuite-go-agent/pkg/exporters.RegionId=${regionId}'"

(可选)Docker环境安装参考

对于Docker环境,可以参考以下Dockerfile示例修改您的Dockerfile文件。

### .....
ENV ARMS_ENABLE=true
ENV ARMS_APP_NAME={AppName}
ENV ARMS_WORKSPACE={workspace}
ENV ARMS_REGION_ID={regionId}
ENV ARMS_LICENSE_KEY={licenseKey}
### 在下方添加自定义Dockerfile逻辑。
### ......

查看监控详情

  1. 登录云监控2.0控制台,选择目标工作空间,在左侧导航栏选择所有功能 > 应用可观测 > 应用监控

  2. 应用列表页面可以看到已接入的应用,单击应用名称可以查看详细的应用监控数据。