Agent Skills
返回列表
混沌工程故障注入

混沌工程故障注入

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_aca7c22a/fault-injection。

技能介绍

解决什么问题

在接口、服务、数据链路代码生成或重构阶段,很多性能问题不会在日常调用里暴露:CPU 热点、内存泄漏、慢 IO、网络抖动、锁竞争、N+1 查询、限流熔断误配置等。这个技能把故障注入变成开发流程中的一道显式检查:先询问是否需要在当前任务中主动制造瓶颈,再按场景选择注入类型、语言和插入方式,帮助工程师在提交前观察系统在压力下的行为。

技能如何工作

技能在三种场景触发:生成代码、修改代码、创建涉及 API/后台服务/数据处理的需求。工作流是:先询问是否进行故障注入;若同意,从 CPU 瓶颈、内存泄漏、IO 阻塞、网络延迟、并发争用、数据库瓶颈、限流熔断、资源耗尽、全部注入 中选择类型;再选择目标语言,如 Python、Go、Java、TypeScript、Rust、C++ 等。

实现上有三类方式:

  • 自动化脚本:面向已有代码文件,自动识别语言、选择函数或方法定义位置、插入带 [FAULT_INJECT] 标记的代码,并生成 JSON 报告。
  • 手动模板:面向新代码生成,按语言实现嵌入瓶颈点。
  • 框架中间件:面向 Web 服务,使用 Flask、Express、Gin、Django、Spring Boot 等中间件模板,更贴近工程链路。

注入代码依赖环境变量开关,默认 FAULT_INJECT_ENABLED=false,正常逻辑不受影响;每个文件每类瓶颈通常只注入第一个匹配方法,便于定位和清理。

适用边界

这更适合在开发、联调、压测准备阶段使用,不是生产故障复现工具。若面向线上流量,需要单独评估中间件注入的副作用、资源消耗与开关策略;注入点必须保留注释标记,避免后续清理时遗漏。

使用场景

  • 为新增订单服务生成接口时,选择网络延迟和限流熔断注入,验证压测前响应路径。
  • 重构支付回调模块时,用内存泄漏和 IO 阻塞故障点,检查慢调用下的资源释放。
  • 设计数据处理链路需求时,加入 N+1 查询与并发争用注入,暴露数据库和线程池瓶颈。
  • 在已有 Go 服务文件中运行自动注入脚本,选择 CPU 瓶颈并生成 JSON 报告。

适合人员

  • 负责新增后端服务的工程师:想在生成接口代码时先加入可控瓶颈,再提交联调。
  • 负责接口重构的工程师:想在修改现有模块时插入 IO 与并发故障点,验证慢路径。
  • 负责数据库或数据链路的需求工程师:想在需求阶段暴露 N+1 查询和线程池争用。
  • 负责 Go/Java/Python 服务压测准备的平台工程师:想在已有代码文件中定位注入点并生成报告。