AI SREClickHouse Workshops

07 テスト、故障、修復

既知の障害を注入し、ClickStack で診断し、修正を適用して、復旧を証明します。

Your computer
macOS terminal: Run workshop commands in Terminal using zsh or bash.

成果

約 20分 で、1件のインシデントを障害発生から検証済みの復旧まで一通り実施します。これは モジュール 06 から直接続くもので、モジュール 00 で設定した ClickStack MCP を使います。

ステップ 1 — 障害を1つ選ぶ

Fault 01 から始めてください。Fault 02 は2つ目の短い演習です。Fault 03 は確実に失敗させるために より大きなデータセットが必要です。

ブランチ期待される障害再ビルド対象
fault/01-map-not-loadingマップのポリゴンが消える。他のカードは動作するfrontend
fault/02-zone-stats-500ゾーンマップのデータが HTTP 500 で失敗するbackend
fault/03-slow-dashboardトレンドのリクエストがタイムアウトする。複数月のデータがある場合のみ使用backend

ステップ 2 — 注入して再現する

次の例は、ローカルの作業を保持しながら Fault 01 を注入します。

cd "$(git rev-parse --show-toplevel)"
git stash push --include-untracked -m "before-module-07"
git switch build-workshop-v1
git switch fault/01-map-not-loading

cd workshops/build_workshop/app
docker compose --env-file .env.workshop \
  -f docker-compose.workshop.yml \
  -f docker-compose.otel.yml \
  up -d --build frontend

新しいブラウザセッションで localhost:8080 を開きます。 いまはマップが空であることが期待どおり です。それ以外の場所での障害は、このシナリオの 一部ではありません。

ステップ 3 — 証拠から診断する

エージェントには答えではなく症状を渡してください。

Using the clickstack MCP, investigate the current workshop failure.
Correlate frontend and backend telemetry, identify the root cause, and cite the exact
events, request, response content type, or trace that supports the conclusion.
Do not edit code yet.

Fault 01 では、ClickStack → Client Sessions も確認してください。有用な証拠は、フロント エンドのエラーとリソースのパース失敗です。正常なバックエンドのトレースも、影響範囲を絞り込む という点で証拠になります。

フロントエンドのエラーと空のマップのリプレイを表示している ClickStack の Client Sessions

何かを修正する前に、次を書き出してください。

  • 障害が起きているコンポーネント
  • それを証明する証拠
  • 修正前には失敗し、修正後には成功する復旧チェック1つ

ステップ 4 — 修正して再ビルドする

証明された原因に対処する最小の変更をエージェントに依頼し、その後、影響を受けたサービスを 再ビルドします。Fault 01 の場合は次のとおりです。

docker compose --env-file .env.workshop \
  -f docker-compose.workshop.yml \
  -f docker-compose.otel.yml \
  up -d --build frontend

Fault 02 または 03 の場合は、frontend を backend に置き換えてください。

新しいブラウザセッションを開きます。元の症状は消えていなければならず、ClickStack には新しい 該当エラーが表示されないはずです。過去のインシデントのイベントは、選択した時間範囲に残ります。 履歴が消えることを期待するのではなく、タイムスタンプを比較してください。

ステップ 5 — クリーンなベースラインに戻る

試した修正を保持し、build-workshop-v1 を復元して、両方のアプリサービスを再ビルドします。

cd "$(git rev-parse --show-toplevel)"
git stash push --include-untracked -m "module-07-fix"
git switch build-workshop-v1

cd workshops/build_workshop/app
docker compose --env-file .env.workshop \
  -f docker-compose.workshop.yml \
  -f docker-compose.otel.yml \
  up -d --build frontend backend

完了チェック

  • 修正前に、注入した症状が現れた。
  • エージェントが根本原因を証明するテレメトリを引用した。
  • 修正後、同じ復旧チェックが成功する。
  • 新しいセッションで、新たな該当エラーが発生しない。
  • git branch --show-current が build-workshop-v1 を返す。

08 チャットと Langfuse に進んでください。

このページの内容

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

JA