# TraceAnomaly マルチサービスアプリケーションの学習運用時に収集したトレースから、posterior flow を伴う深層ベイジアンニューラルネットワークを訓練し、実運用トレースを 2 段階でオンライン異常検知するシステム [45]。(Source: [[@2021__CSUR__Anomaly Detection and Failure Root Cause Analysis in (Micro)Service-Based Cloud Applications - A Survey - Chapter 3.2 Distributed Tracing-based Anomaly Detection Techniques]] §3.2.1) ## 動作 1. 学習時に観測したすべてのサービス呼び出し経路(service call path)を保存する。 2. 実運用時、新規トレースの呼び出し経路が保存済み経路に含まれない(未知の経路である)かをまず判定する。未知経路が見つかった場合、運用者が手動で維持するホワイトリスト(例: サービスアップグレード後に発生する新規の正当な相互作用を除外するためのもの)と照合し、機能的異常として扱うかを決める。 3. 機能的異常でなければ、トレースを深層ベイジアンニューラルネットワークに渡し、そのトレースが正常である尤度を算出する。尤度が閾値未満であれば性能異常と判定する。 ## 根本原因分析(RCA)での利用 §3.2.1で検知した機能的異常・性能異常について、TraceAnomalyは根本原因の候補サービスも特定する(direct analysisに分類されるRCA手法。CloudDiag [56] と同分類)。(Source: [[@2021__CSUR__Anomaly Detection and Failure Root Cause Analysis in (Micro)Service-Based Cloud Applications - A Survey - Chapter 4.1 Log-based and Distributed Tracing-based Root Cause Analysis Techniques]] §4.2.2) - **機能的異常**: 根本原因は、以前に観測されていないcall pathを開始したサービスと自明に一致する。 - **性能異常**: 深層ベイジアンニューラルネットワークは「どのサービスが原因で異常判定されたか」を示さないため、TraceAnomalyは別途、異常トレース内のサービス間相互作用の応答時間を正常時の平均応答時間と相関比較する。応答時間が平均から有意に逸脱した相互作用を異常とみなし、1つ以上の「異常な相互作用の連鎖」を得る。その連鎖の中で最後に呼び出されたサービスを根本原因候補として抽出する。 ## 関連 - ソース: [[@2021__CSUR__Anomaly Detection and Failure Root Cause Analysis in (Micro)Service-Based Cloud Applications - A Survey - Chapter 3.2 Distributed Tracing-based Anomaly Detection Techniques]] / [[@2021__CSUR__Anomaly Detection and Failure Root Cause Analysis in (Micro)Service-Based Cloud Applications - A Survey - Chapter 4.1 Log-based and Distributed Tracing-based Root Cause Analysis Techniques]] - 概念: [[分散トレーシング]]