ガイド: インシデント対応とポストモーテム作成
システム障害(インシデント)は、どんなに準備をしていても起こり得ます。重要なのは、発生時にいかに冷静かつ迅速に対応し、そしてインシデントから学び、将来の再発を防止するかです。
このガイドでは、MCPのインシデント対応プロンプトを使い、インシデント発生時の初動から、解決後のポストモーテム作成までを円滑に進める方法を紹介します。
🎯 このガイドで達成できること
- インシデント発生時に、初動対応のチェックリストを素早く生成する。
- 根本原因を分析し、責めない文化(Blame-free)に基づいたポストモーテムを作成する。
- インシデント対応プロセスを標準化し、チームの対応能力を向上させる。
Step 1: インシデント対応プロンプトで初動対応を支援する
インシデントが発生した直後は、混乱しがちです。MCPは、このような状況で冷静な判断を助けるためのチェックリストを提供します。
@psmメンションでインシデント対応プロンプト(APIリファレンスでの正式名称は incident)を呼び出し、状況を伝えます。
シナリオ: 本番環境のAPIレスポンスが著しく遅延している。
@psm incident プロンプトを使って、初動対応のチェックリストを作成してください。
概要: 本番環境でAPIレスポンスが5秒以上かかる
重大度: High
影響範囲: 全ユーザー
現在のステータス: 発生中MCPは、以下のような初動対応チェックリストを生成します。
- [ ] 対応責任者をアサインする
- [ ] Slackなどでインシデント対応チャンネルを作成し、関係者(エンジニア、PdMなど)を招待する
- [ ] ユーザーへの影響を最小限にするための応急処置を検討する(例: サーバー再起動、関連機能の一時停止)
- [ ] 状況と対応ログを時系列で記録し始める
- [ ] カスタマーサポートチームと連携し、ユーザーへの告知を検討する
このチェックリストに従うことで、対応の抜け漏れを防ぎ、チームの連携をスムーズにします。
参考: curl を使ってAPIを直接呼び出す場合
bash
# 環境変数 MCP_SERVER_URL と MCP_API_KEY が設定されている必要があります
curl -X POST "$MCP_SERVER_URL/prompts/incident" \
-H "Authorization: Bearer $MCP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"summary": "本番環境でAPIレスポンスが5秒以上かかる",
"severity": "High",
"scope": "全ユーザー",
"status": "ongoing"
}'Step 2: インシデント対応プロンプトでポストモーテムを作成する
インシデントが解決した後、最も重要なのは「振り返り」です。同じインシデント対応プロンプトに、解決後の情報を与えてポストモーテムの作成を依頼します。
@psm incident プロンプトを使って、ポストモーテムを作成してください。
概要: APIレスポンス遅延問題
ステータス: 解決済み
根本原因: データベースのusersテーブルに対するクエリで、emailカラムにインデックスが設定されていなかったため、テーブルフルスキャンが発生していた。
解決策: emailカラムにインデックスを追加し、デプロイした。
発生期間: 45分間
タイムライン:
- 14:30: ユーザーからの問い合わせにより問題発覚
- 14:35: 調査開始、DBのCPU使用率が急上昇していることを確認
- 14:50: スロークエリログから原因となるクエリを特定
- 15:00: インデックス追加の修正コードを作成・レビュー
- 15:15: 修正を本番環境にデプロイし、レスポンスタイムが正常化したことを確認MCPは、これらの情報に基づき、個人を責めるのではなく、システムやプロセスの改善に焦点を当てた「Blame-free」なポストモーテムドキュメントを生成します。生成されたドキュメントをチームでレビューし、具体的なアクションアイテム(例: 「コードレビュー時にインデックス設計を必須のチェック項目とする」「スロークエリを検知するアラートを導入する」など)を決定しましょう。
参考: curl を使ってAPIを直接呼び出す場合
bash
# 環境変数 MCP_SERVER_URL と MCP_API_KEY が設定されている必要があります
curl -X POST "$MCP_SERVER_URL/prompts/incident" \
-H "Authorization: Bearer $MCP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"summary": "APIレスポンス遅延問題",
"severity": "High",
"status": "resolved",
"root_cause": "usersテーブルのemailカラムにインデックスがなく、クエリが低速化していた。",
"resolution": "emailカラムにインデックスを追加し、デプロイした。",
"duration": "45分間",
"timeline": [
"14:30: ユーザーからの問い合わせにより問題発覚",
"14:35: 調査開始、DBのCPU使用率が急上昇していることを確認",
"14:50: スロークエリログから原因となるクエリを特定",
"15:00: インデックス追加の修正コードを作成・レビュー",
"15:15: 修正を本番環境にデプロイし、レスポンスタイムが正常化したことを確認"
]
}'まとめ
インシデントは避けられないかもしれませんが、その対応プロセスを改善することは可能です。MCPをインシデント対応のパートナーとして活用することで、障害に強いチームとシステムを育てていきましょう。