# コード知識強化RCA
## 定義
コード知識強化 RCA(Code Knowledge Enhanced Root Cause Analysis)は、分散システムのソースコードから実行ロジック・依存関係・コンテキストを静的解析で抽出し、障害診断(根本原因分析)の精度を向上させるアプローチである。従来の監視データ(ログ・メトリクス・トレース)や LLM の言語理解に加え、コードベースという第三の情報源を診断プロセスに組み込む。
COCA([[@2025__arXiv__COCA - Generative Root Cause Analysis for Distributed Systems with Code Knowledge]])がこのアプローチの最初の実装例として知られる。特に監視データが制限されたイシューレポート設定(JIRA・GitHub Issues)において、ログメッセージをコード行に対応付け、障害前の実行パスを再構築し、LLM の推論を補強する。
## 横断的知見
- **監視データが存在しない設定でもコード知識が RCA を改善する**: COCA が対象とするのは JIRA 等のイシュートラッキングプラットフォームの設定であり、包括的な実行時監視データは取得不可能である。この設定で LLM 単体より 43.3%(Exact Match)多く根本原因を特定できることは、コード知識が監視データの代替として機能することを示す。(Source: [[@2025__arXiv__COCA - Generative Root Cause Analysis for Distributed Systems with Code Knowledge]] Tables II, IV)
## 未解決の問い
- コード知識強化 RCA は、監視データ(ログ・メトリクス・トレース)が豊富な設定でも追加的な改善をもたらすか。それとも監視データが不足する設定に特化したアプローチか。
- COCA は Java バイトコード解析(Soot + Eclipse JDT)に依存する。Python・Go・Rust などで書かれた分散システムへの適用にはどの程度の追加コストが必要か。
- 静的解析ベースの実行パス再構築は、動的言語・リフレクション多用のシステムでは精度が落ちる。動的解析との組み合わせは有効か。
- LLM のコンテキストウィンドウが拡大した場合(100M トークン超)、インデックス/検索による圧縮フェーズは不要になるか、それとも関連性の高いコードを選ぶ設計原理が依然重要か。
- RPC 以外の通信機構(イベントバス・メッセージキュー・Kafka・gRPC ストリーミング)での実行パス再構築はどう設計するか。
## 関連
- 親概念: [[根本原因分析]] / [[LLMによる根本原因分析]]
- 実装: [[COCA]]
- 関連手法: [[ログ解析]] / [[ログパース]]
- ソース: [[@2025__arXiv__COCA - Generative Root Cause Analysis for Distributed Systems with Code Knowledge]]
## 出典
- [[@2025__arXiv__COCA - Generative Root Cause Analysis for Distributed Systems with Code Knowledge]](フェーズ設計・実験結果・RPCBridge)