自定义扩展功能由"一个规则 + 一段待注入的代码"组成,通过 Go Agent 的能力在编译时完成代码插桩,而无需修改原始代码。它的优势是即使非项目开发人员也能在不动原始代码的情况下实现相关功能。
常见的自定义扩展应用场景包括:
- 日志打印:记录函数的出入参数、HTTP 返回 body、SQL 请求语句和参数等详细信息,便于快速定位问题。例如可注入 hook 打印 SQL 查询语句,从而检测潜在的 SQL 注入攻击。
- 记录 Span:ARMS 链路追踪默认对开源 SDK 埋点,如果业务中有关心的函数需要记录,可通过自定义插件记录当前函数的 span。
- 流量回放:对生产请求进行录制(如记录 HTTP 请求和返回),用于开发和测试阶段回归,提高测试质量、减少线上故障。
使用流程通常为:创建 hook 文件夹编写注入代码 → 编写测试 Demo → 编写 conf.json 配置指定注入目标 → 用 instgo set --rule 设置规则后编译执行。




