障害時系列を書く:時刻・事実・操作・結果を残す

初級 | 12分 で読める | 2026.07.11

公式ドキュメント

障害タイムラインは、検知から復旧までの事実・判断・操作・結果を、共通の時刻基準で並べた記録です。 結論は、きれいな物語を後から作るのではなく、障害中に短い行を追記し、推測が外れても消さないことです。

なぜ必要か

障害中はメトリクスも担当者も刻々と変わります。記憶だけに頼ると、操作の前後関係や判断時点で見えていた情報が失われます。タイムラインがあれば、交代要員は調査を再開でき、事後レビューでは復旧を遅らせた情報不足や有効だった対応を検証できます。

タイムラインは誰かの責任を確定する表ではなく、その時点で何が分かり、何をしたかを再現する資料です。

登場人物と対象

インシデントコマンダー、調査・操作担当、記録担当、社内外の連絡担当が主な登場人物です。一人で対応する場合も役割を意識し、操作前後に一行ずつ残します。対象にはアラート、利用者影響、ログ、メトリクス、デプロイ、設定変更、連絡、復旧判定を含めます。

記録の流れ

  1. 発生日時、記録タイムゾーン、対象サービスを固定する。
  2. 最初の検知と利用者影響を書く。
  3. 観測、仮説、判断、操作、結果を別行にする。
  4. 担当交代・エスカレーション・外部連絡も記録する。
  5. 復旧条件を観測し、監視継続の期限を書く。
  6. 事後にログと照合し、推定時刻を明示して補う。

一行の型

10:02 JST [検知] 5xx率アラートが発火
10:05 JST [確認] ログインAPIで5xx増加、閲覧APIは成功を確認
10:08 [操作] 直前リリースを前バージョンへ戻した
10:12 JST [結果] ロールバック後、対象アラートが回復条件を満たした

架空の平常値を置かず、実際のダッシュボード名、クエリ、アラート条件へリンクします。数値が取得できない時は「未確認」と書きます。

記録パターンの比較

種類書く内容混ぜないもの
観測ログ・画面・指標で確認した事実原因の断定
仮説事実を説明できる候補確定表現
判断選択と根拠、判断者操作結果
操作対象、実行者、変更内容成功の推測
結果操作後の観測因果の断定

「操作した」と「回復した」を別行にすると、単なる時間的な連続を因果関係と誤認しにくくなります。

分ける項目

  • 観察した事実
  • 立てた仮説
  • 行った操作
  • 操作後の結果
  • 判断した人と理由

仮説が外れても削除せず、その後に否定された事実を追記します。

相対時刻を避ける

「さっき」「少し後」ではなく、タイムゾーンを含む時刻を使います。複数システムのログ時刻がUTCか日本時間かも確認します。

時計のずれが疑われる場合、元ログの時刻と変換後時刻を残します。事後に追加した行には「追記」と情報源を付け、障害中の認識と後から判明した事実を区別します。

よくある誤解

議事録を全文書き起こす必要はありません。復旧判断に関係する事実と操作を優先します。誤った仮説は削除しません。否定された時刻と証拠を追記することで、調査の重複を防げます。また、復旧時刻は「最後のエラー時刻」と同じとは限らず、定めた正常条件を満たした時刻で判断します。

注意とベストプラクティス

  • トークン、個人情報、顧客データを貼らず、安全なログ参照先を示す。
  • 変更系操作には対象環境、実行者、承認、戻し方を残す。
  • チャットの重要判断をタイムラインへ転記する。
  • 画像だけでなく検索可能なテキストでも要点を残す。
  • 記録作業が復旧を妨げる時は、最低限の時刻と操作を優先する。

デバッグ・確認方法

事後に監視、デプロイ履歴、監査ログ、チャットの時刻を照合します。時刻順が逆転していないか、操作の対象と結果が対応しているか、利用者影響の開始・終了根拠があるかを確認します。推定しかできない箇所は範囲または「推定」と記します。

ケーススタディ:決済APIの断続的な失敗

21時03分に決済成功率の低下を検知し、21時08分に直前のアプリ更新を戻したとします。21時10分に成功率が上がっても、ここで「原因は更新、復旧済み」と書くのは早すぎます。外部決済事業者の遅延が同時に解消した可能性や、失敗した要求の再試行がまだ続く可能性があるからです。

記録担当は、まず「21:03 JST [検知] 決済成功率アラート発火」「21:05 JST [観測] 決済APIのタイムアウト増加、注文作成APIは平常範囲」のように影響範囲を分けます。次に「21:08 JST [操作] アプリを版Aから版Bへ戻した」と対象を明記し、「21:10 JST [結果] 直近5分の成功率が回復条件を1回満たした」「21:20 JST [復旧判定] 10分間連続で回復条件を満たし、滞留要求がないことを確認」と観測窓を残します。これなら、操作直後の一時的な改善と復旧判定を区別できます。

判断手順と失敗条件

記録に迷ったら、第一に「この行は画面、ログ、通知、発言のどれで確認できるか」、第二に「事実、仮説、判断、操作、結果のどれか」、第三に「交代者が次の行動を選ぶために必要か」を順に確認します。出典がない原因推測は仮説へ移し、操作対象や実行者が不明ならその場で補います。復旧条件が決まっていない場合は、回復を宣言する前に正常とみなす指標、観測時間、滞留処理の扱いを決めます。

タイムラインの失敗条件は、時刻が多いことではなく、再現に必要な関係が切れていることです。具体的には、操作前の状態がない、操作と結果が同じ文で因果として断定される、復旧判定に観測窓がない、タイムゾーンが混在する、チャット上の承認だけが残る、後日の訂正が元記録を上書きする、といった状態です。一つでも重要操作に該当すれば、事後検証で「何が効いたか」を確かめられません。

良い例と悪い例

悪い例は「21時ごろ決済障害。ロールバックして直った」です。影響範囲、版、実行者、観測値、復旧条件がなく、時刻も曖昧です。良い例は「21:08 JST [操作/担当:佐藤] 本番決済APIを版Aから版Bへ戻した。変更記録INC-42」「21:10 JST [結果] 成功率が回復条件を1回満たした。10分間の監視を継続」のように、操作と観測を分けます。良い記録でも秘密情報や顧客の決済情報は貼らず、アクセス制御された監視画面や監査記録の識別子を示します。

観測方法として、各重要操作に前後一つ以上の観測行があるか、復旧行から監視クエリへ到達できるか、別担当が現在の影響と次回確認時刻を説明できるかを確認します。さらに、ログ時刻と記録時刻の差を数件標本確認します。時計のずれが見つかったら全行を推測で直さず、ずれの範囲と変換規則を注記します。

実践演習:断片から時系列を再構成する

検証用のアラート通知、デプロイ履歴、チャット、アプリログを用意し、各情報のタイムゾーンを確認して一枚の表へ並べます。元の時刻を保存し、表示用時刻を別列にします。判断の根拠が見つからない行には「根拠未記録」と書き、想像で補いません。

次に、操作行を隠して観測だけを読み、交代者が現在状態を説明できるか試します。説明できなければ、利用者影響、対象範囲、最後の正常状態、進行中の仮説のどれが不足しているかを特定します。復旧行が終了条件を満たし、監視継続と次回連絡時刻があるかも確認します。

完了条件はすべての秒を埋めることではありません。重要な判断と変更操作について、前提となる観測、実行者・対象、操作後の観測を追えることです。欠落はそのまま明示し、事後レビューで扱う具体的な改善項目へつなげます。

完了判定と保管

タイムラインには、インシデント識別子、作成者、最終更新日時、参照した監視・ログの保存先を付けます。ログの保持期限が短い場合は、組織のデータ管理方針に従って必要な証拠を保全します。個人情報や認証情報を複製してはいけません。

共有前に、影響開始・検知・最初の対応・緩和・復旧の各時点が追えるか、担当交代がある場合に引き継ぎ内容が残っているかを確認します。外部向け報告と内部タイムラインでは読者と公開範囲が違うため、そのまま転記せず、確認済みの影響と現在状態を選びます。

事後レビューで時刻や事実を訂正する場合は、元の記録を黙って書き換えず、訂正理由と情報源が追える方法を必ず使います。これにより、障害中の認識と事後に確定した事実を区別できます。

まとめ

障害タイムラインは、共通時刻で事実・仮説・操作・結果を分け、復旧と引き継ぎを支える運用データです。 外れた仮説も履歴として残し、事後に一次データと照合します。正確さを装うより、未確認と推定を明示する方が信頼できる記録になります。

参考リソース

記録担当

可能なら調査担当と記録担当を分けます。一人の場合は、操作前後に短い一行だけでも残します。

次に読む記事

← 一覧に戻る
PR
PR
PR
PR