为Golang应用安装探针后,云监控2.0即可开始监控Golang应用,您可以查看应用拓扑、调用链路、SQL分析等一系列监控数据。本文介绍如何为Go应用手动安装探针。
对于部署在Kubernetes环境的应用,不推荐手动安装探针,建议通过安装组件的方式接入云监控2.0。具体操作,请参见容器服务 ACK 和容器计算服务 ACS 通过 ack-onepilot 组件安装 Go 探针。
前提条件
确保您的编译环境和公网或阿里云内网连通,且编译环境所在安全组已开放8080、9990、80、443的TCP出方向权限。
检查您的网络环境。具体要求,请参见Golang应用监控网络配置。
检查您的编译环境操作系统和架构,以及Go版本和框架版本。具体要求,请参见ARMS应用监控支持的Go组件和框架。
前提条件
(可选)若项目在编译时包含vendor目录,请在
go build后添加-mod=vendor。使用
wget命令下载编译工具instgo,请根据编译环境和编译机器所在地域,选择对应的下载地址。需要注意,instgo 在编译时会触发自动更新,请将 instgo 保存在编译用户具有修改权限的目录下。
说明Instgo 是 ARMS 提供的 Golang 应用编译工具,使用 instgo 编译您的 Golang 项目后,ARMS 即可开始监控您的 Golang 应用。
各地域下载的编译工具是相同的,如果您的公网环境可以访问OSS地址,可以直接使用对应操作系统和架构的杭州公网地址获取编译工具。
为编译工具赋予可执行权限。
Linux/Mac
# 赋予可执行权限 chmod +x instgoWindows
Windows中无需赋予可执行权限。
(可选)配置Uid作为编译参数。
重要如果您跳过该步,instgo会默认为您安装最新版本ARMS探针。
使用set命令配置uid或者licensekey作为编译参数。
instgo set --uid={YourAliyunUid} //需要使用instgo 1.4.5及以上版本,uid为阿里云主账号uid将instgo作为前缀添加到您原有的编译命令前并执行编译。
instgo go build {arg1} {arg2} {arg3}如果您使用go install编译项目,也可以直接将instgo作为前缀添加到您原有的编译命令前并执行编译。
使用上一步编译的二进制文件构建镜像。
步骤二:配置环境变量
混合编译后,您需要手动为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逻辑。
### ......查看监控详情
登录云监控2.0控制台,选择目标工作空间,在左侧导航栏选择。
在应用列表页面可以看到已接入的应用,单击应用名称可以查看详细的应用监控数据。