CnOps 社区
首页开源项目实践文章视频课程常见问答开发者工具
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具

CnOps 社区

愿景

CnOps 社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页问答ARMS Go监控的自定义扩展功能可以实现哪些场景?

ARMS Go监控的自定义扩展功能可以实现哪些场景?

#ARMS#Go#自定义扩展#代码注入#流量回放

CNOps | 2026-04-14

ARMS Go监控的自定义扩展功能通过规则+代码注入的方式,可以在不修改原始代码的情况下实现多种功能:

1. 日志打印:

  • 打印SQL请求语句和参数
  • 记录HTTP请求的Header和Body
  • 记录函数出入参数

配置示例(SQL打印):

[{
  "ImportPath": "database/sql",
  "Function": "Query",
  "ReceiverType": "*DB",
  "OnEnter": "sqlQueryOnEnter",
  "Path": "/path/to/hook"
}]

2. 记录自定义Span:

  • 在业务函数中创建自定义Span
  • 添加自定义属性(Attributes)
  • 扩展链路追踪的覆盖范围

3. 流量回放:

  • 录制生产环境HTTP请求
  • 记录请求Header和Body
  • 用于开发和测试阶段回归验证

使用步骤:

  1. 创建hook文件夹,编写注入代码
  2. 创建Demo项目,编写测试代码
  3. 编写conf.json配置规则
  4. 执行 instgo set --rule=./conf.json
  5. 使用 instgo go build 编译运行

这种机制的优势在于非项目开发人员也能在不修改原始代码的情况下实现功能扩展。