本文主要介绍如何使用云效进行 Golang 应用部署,如何结合 ARMS 进行 Golang 应用监控,支持查看应用拓扑、调用链路、SQL分析等一系列监控数据。
1. 前提条件
已开通ARMS。获取ARMS LicenseKey,具体操作,请参见DescribeTraceLicenseKey - 列出LicenseKey。
已有Golang应用代码仓库,go版本 >= 1.18。
2. 操作步骤
2.1 配置CI/CD流水线
进入 Flow 首页,单击新建流水线,选择Go · 测试、构建镜像流水线模板,单击创建,新建流水线,进入流水线编辑页。
配置代码源。按需选择代码源,选择代码仓库和分支,本示例使用 Codeup 代码源,公开示例代码如下:https://atomgit.com/flow-example/arms-apm-demo.git
单元测试任务按需选择合适的Golang版本,按需调整测试命令。
镜像构建任务修改构建命令,将instgo作为前缀添加到您原有的编译命令前并执行编译。
安装 Go:按需选择合适的 Golang 版本。
执行 Golang 构建命令
使用
wget
命令下载编译工具instgo,请根据编译环境和编译机器所在地域,选择对应的下载地址。为编译工具赋予可执行权限。
(可选)获取LicenseKey并配置编译参数。您可以通过OpenAPI获取LicenseKey,具体方法,参见DescribeTraceLicenseKey - 列出LicenseKey。获取LicenseKey后使用
set
命令配置编译参数。说明:如果您跳过该步,instgo会进入dev模式,并默认为您安装最新版本的ARMS探针。如果您需要在生产环境中部署,建议配置该参数。将instgo作为前缀添加到您原有的编译命令前并执行编译。
使用上一步编译的二进制文件构建镜像。本示例构建镜像并上传到 ACR。
选择服务连接,指定ACR镜像仓库。
指定镜像标签。
指定Dockerfile路径,本示例Dockerfile文件存在于代码库根目录Dockerfile中。
go mod tidy
# 下载编译工具 instgo
wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo
# 赋予可执行权限
chmod +x instgo
# (可选)获取LicenseKey并配置编译参数
instgo set --licenseKey=${YourLicenseKey} --regionId=${YourRegionId} --dev=false
# 将instgo作为前缀添加到您原有的编译命令前并执行编译
./instgo go build -o server-test main.go
添加新阶段,将镜像部署到 Kubernetes 集群上。添加 Kubectl 发布 任务,选择 K8s 集群连接和 Kubectl 版本,指定待部署的 YAML 路径,本示例中 YAML 文件存在于代码库根目录的 deploy 文件中。YAML文件中需要将以下
labels
添加到spec.template.metadata层级下。
labels:
aliyun.com/app-language: golang # Go应用必填,标明此应用是Go应用。
armsPilotAutoEnable: 'on'
armsPilotCreateAppName: "<your-deployment-name>" #请将<your-deployment-name>替换为您的应用名称。
2.2 运行流水线部署应用
配置完成后,保存并运行流水线,执行 Go 应用构建部署任务,进入流水线详情页查看部署进度,支持查看构建部署详细日志。
2.3 查看应用监控
等待上述应用部署成功后,若Golang应用出现在ARMS控制台的 页面中且有数据上报,则说明接入成功。
单击应用进入应用详情,可以查看应用拓扑、调用链分析、请求耗时、CPU用量等信息。说明:如果您在使用Golang探针过程中有任何问题,欢迎通过钉钉答疑群(群号:35568145)与ARMS同学联系。
3. 相关文档
- 本页导读 (1)
- 1. 前提条件
- 2. 操作步骤
- 2.1 配置CI/CD流水线
- 2.2 运行流水线部署应用
- 2.3 查看应用监控
- 3. 相关文档