mcpField
C
chaos-engineering

chaos-engineering

github.com/alphaonedev测试与质量44 次安装
代码仓库

关于 chaos-engineering

面向 OpenClaw 的混沌工程技能,可通过故障注入检验分布式系统的韧性。支持配置实验、监控故障影响并回滚,适用于发布前和故障响应中的系统测试。

主要功能

  1. 01注入 CPU、网络及 Pod 故障
  2. 02通过 YAML 定义实验
  3. 03生成故障行为与恢复报告
  4. 04关联监控指标
  5. 05自动回滚实验

适用场景

  1. 01在 Kubernetes 预发布环境测试 Pod 恢复
  2. 02测量微服务的网络延迟影响

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill chaos-engineering

安装后在 Claude Code 中输入/chaos-engineering确认已加载。

详细介绍

chaos-engineering

用途

此技能可让 OpenClaw 模拟分布式系统中的故障,例如网络分区或终止 Pod,以发现弱点并提升韧性。它使用 Chaos Toolkit 等工具或类似集成,以编程方式注入故障。

适用场景

在系统测试阶段、生产发布前或发生中断时使用此技能,以验证系统韧性。可将其用于微服务架构、云环境(例如 Kubernetes),或高可用配置,确保系统能够妥善应对故障。

主要能力

  • 通过 CLI 或 API 注入 CPU 压力、网络延迟或驱逐 Pod 等故障。
  • 生成故障后的系统行为报告,其中包含恢复时间等指标。
  • 支持使用 YAML 配置定义自定义实验,例如指定目标和持续时间。
  • 与监控工具集成,将故障与实时指标关联起来。
  • 自动回滚实验,恢复原始状态。

使用模式

要运行混沌实验,先定义配置文件,然后通过 CLI 执行。使用 API 时,先进行身份验证,再发送请求触发事件。务必先在预发布环境中运行。模式:准备配置 → 注入故障 → 监控影响 → 分析结果。对于重复测试,可在脚本中使用循环来调整持续时间或强度等参数。

常用命令/API

使用 OpenClaw CLI 执行混沌操作,身份验证需要 $CHAOS_API_KEY。CLI 命令示例:

ocla chaos inject --type network-latency --duration 30s --target pod=myapp-123 --key $CHAOS_API_KEY

API 端点:向 /api/v1/chaos/experiments 发送 POST 请求,并附上 JSON 请求体:

{ "experiment": "network-partition", "targets": ["service:db"], "duration": 60 }

配置格式(YAML 片段):

apiVersion: chaos.openclaw/v1
kind: Experiment
spec:
  type: cpu-stress
  percentage: 80

要停止实验:ocla chaos stop --id exp-456 --key $CHAOS_API_KEY。

集成说明

要与 Kubernetes 集成,请设置 Chaos Engine operator;为部署添加注解以实现自动发现。要进行监控,可通过 webhook 与 Prometheus 连接,例如将指标导出到 /metrics 端点。使用环境变量存储密钥,例如 export CHAOS_API_KEY=your-key。在代码中,将其作为模块导入:

import openclaw.chaos as oc
oc.inject_fault(type='pod-kill', target='app-pod')

通过在脚本中封装命令等方式确保兼容 CI/CD 工具,例如在 Jenkins 中使用:sh 'ocla chaos inject ...'。

错误处理

检查无效目标或身份验证失败等错误;在脚本中使用 try-catch。示例片段:

try:
  ocla chaos inject --type pod-kill --target invalid-pod --key $CHAOS_API_KEY
except subprocess.CalledProcessError as e:
  print(f"Error: {e} - Check pod existence and API key")

常见问题:速率限制(等待后重试)、权限拒绝(验证 RBAC)或实验超时(通过 --timeout 120s 设置)。记录所有输出,并使用 --dry-run 标志预览操作,而不实际执行。

具体使用示例

  1. 测试 Kubernetes Pod 的韧性:要在预发布集群中模拟 Pod 故障,请运行:ocla chaos inject --type pod-kill --target deployment/myapp --duration 10s --key $CHAOS_API_KEY。然后,通过 kubectl get pods 检查 Pod 状态,确认其已恢复,并分析日志以检查停机时间。
  2. 为 API 测试注入网络延迟:对于微服务,创建配置文件并执行:ocla chaos run --config path/to/experiment.yaml --key $CHAOS_API_KEY。YAML 内容可能如下:spec: type: network-latency delay: 500ms。使用集成工具进行监控,测量操作前后的响应时间。

图关系

  • 相关项:devops-sre(集群)、monitoring(故障分析)、deployment(定位目标系统)、fault-injection(标签重叠)。
  • 关联方式:resilience(标签)、distributed-systems(嵌入提示),支持与 chaos-engineering 和 testing 技能协同构建工作流。

评论

支持 Markdown