TT Lab
はじめる
学ぶ 学習パス コース

ログから原因を見つける

五つの事件でタイムラインを立てる

TT Labで続きを見る

目標

複数のログに散らばった5つの時刻を集めてタイムラインを作り、ユーザー視点の影響継続時間を計算できるようになります。

なぜ重要なのか

障害報告書で、顧客が最初に読むのは原因分析ではなく、タイムラインです。「私たちがどれだけ長く気づかなかったか」と「気づいてからどれだけ早く動いたか」を、同時に見せるからです。

5つの時刻の間の4つの区間が、それぞれ名前を持ちます。変更 → 影響は潜伏区間、影響 → 認知は検知遅延、認知 → 措置は対応遅延、措置 → 復旧確認は検証区間です。このうち検知遅延が大きければ、直すべきものはシステムではなく観測です。そして、検証区間がない報告書は、「直したと思う」までしか言っていません。

影響継続時間は、影響開始から復旧確認までで数えます。ユーザーはデプロイがいつだったかを知らず、ロールバックコマンドが入った瞬間ではなく、実際に正常になった瞬間に、影響から抜け出すからです。

3つのログ: /opt/data/deploy.log、/opt/data/app.jsonl、/opt/data/alert.log

ステップ

  1. /root/timelineディレクトリを作成してください。
  2. payment 2.7.0がデプロイされた時刻を、HH:MMで/root/timeline/t_deploy.txtに書いてください。
  3. 最初のエラーが発生した時刻を、/root/timeline/t_error.txtに書いてください。
  4. criticalアラートがfiringになった時刻を、/root/timeline/t_alert.txtに書いてください。
  5. ロールバックが実行された時刻を、/root/timeline/t_rollback.txtに書いてください。
  6. アラートがresolvedに変わった時刻を、/root/timeline/t_resolved.txtに書いてください。
  7. /root/timeline/timeline.mdを書いてください。5つの時刻がすべて入り、ファイルの中で時間順に並んでいる必要があります。
  8. 影響開始から復旧確認までの分数を、/root/timeline/mttr.txtに数字だけで書いてください。

参考

作業ディレクトリを作る

/root/timelineディレクトリを作成してください。

/root/timelineの下に、結果を集めます。

変更時刻を見つける

payment 2.7.0がデプロイされた時刻を、HH:MMで/root/timeline/t_deploy.txtに書いてください。

deploy.logで、payment 2.7.0がデプロイされた時刻です。HH:MMだけを書いてください。

影響開始時刻を見つける

最初のエラーが発生した時刻を、/root/timeline/t_error.txtに書いてください。

ユーザーが実際に失敗を経験し始めたときです。app.jsonlのerrorの最初の時刻を見てください。

認知時刻を見つける

criticalアラートがfiringになった時刻を、/root/timeline/t_alert.txtに書いてください。

alert.logで、criticalがfiring状態になった時刻です。

措置時刻を見つける

ロールバックが実行された時刻を、/root/timeline/t_rollback.txtに書いてください。

deploy.logにrollbackが記録されています。

復旧確認時刻を見つける

アラートがresolvedに変わった時刻を、/root/timeline/t_resolved.txtに書いてください。

alert.logで、同じルールがresolvedに変わった時刻です。

タイムラインのドキュメントを書く

/root/timeline/timeline.mdを書いてください。5つの時刻がすべて入り、ファイルの中で時間順に並んでいる必要があります。

5つの時刻がすべて入り、ファイルの中で時間順に並んでいる必要があります。

影響継続時間を計算する

影響開始から復旧確認までの分数を、/root/timeline/mttr.txtに数字だけで書いてください。

ユーザー視点で正直な区間は、影響開始から復旧確認までです。分単位の数字だけを書いてください。