ログ横断で伝播した識別子の発生源は、出現行の役割(生成側か転記側か)で判別する
運用
ログ解析
知識
運用
ある識別子や値が複数のログ・トランスクリプト・記録に現れるとき、単純な全文 grep では発生源を特定できない。一覧取得や集計をしただけの無関係なセッション/プロセスのログにも値が写り込むため、ヒットは発生源の何倍にも膨らむ。
判別方法
出現した「行の役割」で絞る。発生源では値が生成側の行(ツール呼び出しの引数、書き込みリクエスト、assistant/送信側イベント)に現れ、転記しただけの場所では結果側の行(ツール結果、レスポンス、受信イベント)にしか現れない。イベントログの行に役割(type・role・方向)のフィールドがあればこの判別は機械的にできる。
生成側ヒットがなお複数残る場合は、最早タイムスタンプのものを採用し(発生は必ず転記に先行する)、別系統の時刻情報(対象レコードの作成時刻など)と突き合わせて妥当性を検証する。
落とし穴
- 調査を実行している自分自身のログが汚染源になる。検索パターンをファイルに書いたりコマンドに含めた時点で、自分のセッションログは全パターンを「生成側の行」として含むようになるので、明示的に除外する。
- grep の -l と -o の併用のように、ツールの出力モードによって「どのパターンがどのファイルに」の対応が落ちることがある。ファイルとマッチの両方を出す形式で取得する。
検証
解決した対応付けは、別系統の時刻(対象の作成・更新時刻)と発生源候補の活動期間が整合するかを全件突き合わせて確認する。不整合が1件でもあれば判別ルールの穴(役割判定の誤り、除外漏れ)を疑う。