mcpField
C
chaos-engineering

chaos-engineering

github.com/alphaonedevテスト・品質44 回インストール
リポジトリ

chaos-engineering について

OpenClaw向けのカオスエンジニアリングスキルで、障害注入により分散システムの耐障害性を検証します。実験の設定、影響の監視、ロールバックに対応し、リリース前のテストや障害対応に利用できます。

主な機能

  1. 01CPU、ネットワーク、Podへの障害注入
  2. 02YAMLによる実験定義
  3. 03挙動と復旧状況のレポート
  4. 04障害と監視メトリクスの照合
  5. 05実験の自動ロールバック

活用シーン

  1. 01Kubernetesのステージング環境でPod復旧を検証
  2. 02マイクロサービスへのネットワーク遅延の影響を測定

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/chaos-engineeringを入力して読み込まれたか確認します。

詳細

カオスエンジニアリング

目的

このスキルを使うと、OpenClaw はネットワーク分断やポッドの強制終了など、分散システムの障害をシミュレートして弱点を特定し、レジリエンスを向上させることができます。Chaos Toolkit などのツールや類似の統合機能を使用して、プログラムから障害を注入します。

使用する場面

システムのテスト段階、本番リリース前、または障害発生後にこのスキルを使用して、レジリエンスを検証します。マイクロサービスアーキテクチャ、クラウド環境(Kubernetes など)、または高可用性構成で使用し、システムが障害に適切に対処できることを確認します。

主な機能

  • CLI または API を介して、CPU 負荷、ネットワーク遅延、ポッドの退避などの障害を注入します。
  • 障害発生後のシステムの挙動に関するレポートを生成します。復旧時間などのメトリクスも含まれます。
  • 対象や期間などを指定する 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 エンドポイント:JSON 本文を指定して /api/v1/chaos/experiments に POST します:

{ "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 オペレーターを設定し、自動検出用のアノテーションをデプロイメントに追加します。監視では、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 ポッドのレジリエンスをテストする:ステージングクラスター内でポッドの障害をシミュレートするには、ocla chaos inject --type pod-kill --target deployment/myapp --duration 10s --key $CHAOS_API_KEY を実行します。次に、kubectl get pods でポッドの状態を確認して復旧を検証し、ログを分析して停止時間を確認します。
  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 のスキルを使ったワークフローを可能にします。

コメント