云效+ARMS实现Go应用部署和监控

更新时间:2025-03-26 10:18:24

本文主要介绍如何使用云效进行 Golang 应用部署,如何结合 ARMS 进行 Golang 应用监控,支持查看应用拓扑、调用链路、SQL分析等一系列监控数据。

1. 前提条件

2. 操作步骤

2.1 配置CI/CD流水线

  1. 进入 Flow 首页,单击新建流水线,选择Go · 测试、构建镜像流水线模板,单击创建,新建流水线,进入流水线编辑页。

image

  1. 配置代码源。按需选择代码源,选择代码仓库和分支,本示例使用 Codeup 代码源,公开示例代码如下:https://atomgit.com/flow-example/arms-apm-demo.git

image

  1. 单元测试任务按需选择合适的Golang版本,按需调整测试命令。

image

  1. 镜像构建任务修改构建命令,将instgo作为前缀添加到您原有的编译命令前并执行编译。

    1. 安装 Go:按需选择合适的 Golang 版本。

    2. 执行 Golang 构建命令

      1. 使用wget命令下载编译工具instgo,请根据编译环境和编译机器所在地域,选择对应的下载地址。

      2. 为编译工具赋予可执行权限。

      3. (可选)获取LicenseKey并配置编译参数。您可以通过OpenAPI获取LicenseKey,具体方法,参见DescribeTraceLicenseKey - 列出LicenseKey。获取LicenseKey后使用set命令配置编译参数。说明:如果您跳过该步,instgo会进入dev模式,并默认为您安装最新版本的ARMS探针。如果您需要在生产环境中部署,建议配置该参数。

      4. instgo作为前缀添加到您原有的编译命令前并执行编译。

    3. 使用上一步编译的二进制文件构建镜像。本示例构建镜像并上传到 ACR。

      1. 选择服务连接,指定ACR镜像仓库。

      2. 指定镜像标签。

      3. 指定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

image

image

  1. 添加新阶段,将镜像部署到 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>替换为您的应用名称。

image

2.2 运行流水线部署应用

配置完成后,保存并运行流水线,执行 Go 应用构建部署任务,进入流水线详情页查看部署进度,支持查看构建部署详细日志。

image

image

2.3 查看应用监控

等待上述应用部署成功后,若Golang应用出现在ARMS控制台应用监控 > 应用列表页面中且有数据上报,则说明接入成功。

image

单击应用进入应用详情,可以查看应用拓扑、调用链分析、请求耗时、CPU用量等信息。说明:如果您在使用Golang探针过程中有任何问题,欢迎通过钉钉答疑群(群号:35568145)与ARMS同学联系。

image

3. 相关文档

  • 本页导读 (1)
  • 1. 前提条件
  • 2. 操作步骤
  • 2.1 配置CI/CD流水线
  • 2.2 运行流水线部署应用
  • 2.3 查看应用监控
  • 3. 相关文档