## Memo ## Memo with LLM ### 論文情報 - **タイトル**: UniSage: A Unified and Post-Analysis-Aware Sampling for Microservices - **著者と所属**: - Zhouruixing Zhu (The Chinese University of Hong Kong, Shenzhen) - Zhihan Jiang (The Chinese University of Hong Kong) - Tianyi Yang (The Chinese University of Hong Kong) - Pinjia He (The Chinese University of Hong Kong, Shenzhen, 責任著者) - **カンファレンス/ジャーナル名**: arXiv preprint (2025年9月30日投稿) - **発表年**: 2025年 ### 論文概要 本論文は、マイクロサービスシステムにおける観測可能性データ(トレースとログ)のサンプリング問題に取り組むUniSageという新しいフレームワークを提案している。従来のサンプル後分析(sample-before-analysis)パラダイムを逆転させ、まず軽量な異常検知と根本原因分析(RCA)を完全なデータストリーム上で実行し、その結果に基づいてサンプリング決定を行う分析後サンプリング(post-analysis-aware)パラダイムを採用している。実験結果は、2.5%のサンプリングレートで56.5%のトレースと96.25%のログカバレッジを達成し、下流RCAの精度を42.45%向上させることを示している。 ### 詳細解説 #### 問題設定 **入力と出力**: - **入力**: N個のサービスを持つ分散システムから収集された[[Observability|可観測性]]データ - ログ(L): タイムスタンプ、サービス名、ログテンプレート、重要度レベル(INFO, WARN, ERROR)を含む構造化されたログエントリ - メトリクス(M): CPU使用率、リクエストレート、エラーレートなどのKPI時系列データ - トレース(T): 複数サービスにまたがるリクエストの実行パスを表すスパンの有向非巡回グラフ(DAG) - 故障フリー期間のデータ(X_F)と本番環境のデータ(X_P) - **出力**: 1. 軽量で正確な故障診断結果(サービスレベルの異常スコア) 2. 長期保存のための情報量の多い小さなデータサブセット **必要なデータ**: - 各トレースにはtrace_idが必要で、これによりトレースと関連ログを紐付ける - 故障フリー期間のベースラインデータ(統計的比較のため) - マルチモーダルな観測可能性データ(トレース、ログ、メトリクス) #### 提案手法 UniSageは3つの主要コンポーネントから構成される: **1. 統合データ融合と相関(Unified Data Fusion and Correlation)** 前処理段階: - ログパーシング: Drainアルゴリズムを使用して生ログをパラメータ化されたテンプレートTP = {tp_1, tp_2, ..., tp_m}に変換 - トレースエンコーディング: 各トレースグラフG_tをルートからリーフへの呼び出しパスC_t = {c_1, c_2, ..., c_k}に分解 - メトリクス集約: 時系列データを固定時間間隔(例: 1分)で集約 クロスモーダル相関: - trace_idを使用してトレースと関連ログを紐付ける相関関数C: C(t_id) → (t, L_t) - これにより、リクエストの完全な分散トレースとその実行中に生成された全ログのセットが統合される **2. マルチモーダル異常分析(Multi-Modal Anomaly Analysis)** モダリティごとの異常検知: - ログワイズ検知: k-σルールを使用。重み付きログレート r = w·r_e + (1-w)·r_w (w=0.8)がk標準偏差以上ずれた場合に異常とフラグ - トレースワイズ検知: スパンレイテンシにk-σルールを適用 - メトリクスワイズ検知: [[主成分分析|PCA]]再構成誤差を使用。re = ||m_{p,c} - m̃_{p,c}||²_2 が閾値ρを超えた場合に異常 パターンマイニング: 各モダリティに対して偏差スコアを計算: - メトリクスパターン: ΔM = k·O + (1-k)·Δμ (k=0.8、Oは分布の重なり、Δμは平均値のシフト) - トレースパターン: ΔT(t) = max_{sp_i∈t}((lat(sp_i) - lat_c(sp_i))/lat_c(sp_i)) - ログパターン: ΔL(l) = (r(l) - r̂(l))/(r̂(l) + ε) 異常サービススコアリング: 各サービスsの異常スコアを計算: φ_s = Σ_{Z∈{T,L,M}} (|A^Z_s|/|A^Z|) Σ_{a∈A^Z_s} (Δ^Z_a)/(R^Z_a + 1) ここで、|A^Z_s|はサービスsのモダリティZのパターン数、Δ^Z_aは偏差スコア、R^Z_aはランク **3. デュアルピラーサンプリング戦略(Dual-Pillar Sampling Strategy)** **エッジケースベースサンプラー**: - トポロジカルバイアス: 呼び出しパスの構造的偏差を評価 Score_topo(t) = 1 - max_{c'∈C_F} Sim(c, c')、ここでSim(c, c') = |c∩c'|/|c∪c'| - 振る舞いバイアス: - トレースの場合: Score_b(t) = max_{sp_i∈t} z(sp_i)、z(sp_i) = |lat(sp_i) - μ|/σ - ログの場合: Score_b(l) = -log(p'_l + ε) エッジケースサンプリング確率: - トレース: p_e(t) = 2/(1 + e^(-2·max(tanh(Score_topo(t)), Score_b(t)))) - 1 - ログ: p_e(l) = 2/(1 + e^(-2·Score_b(l))) - 1 **分析ガイドサンプラー**: 異常検知時にアクティブ化され、RCA結果に基づいてサンプリング: - 異常サービスバイアス: - トレース: p_a(t) = 2/(1 + e^(-2·max_{s∈S_t} φ_s)) - 1 - ログ: p_a(l) = 2/(1 + e^(-2·φ_s)) - 1 - クロスモーダル信号伝播バイアス: - トレースからログへ: p'_a(l) = max(p_a(l), 1 - (1 - p_a(t_l))^{w_t}) - ログからトレースへ: p'_a(t) = max(p_a(t), 1 - (1 - max_{l∈L_t} p_a(l))^{w_l}) **複合サンプラー**: 最終的なサンプリング確率: - 正常時: p = p_e - 異常時: p = p_e · p_a #### 新規性 1. **パラダイムシフト**: 従来のsample-before-analysisからpost-analysis-awareパラダイムへの転換。これにより、異常関連データを破棄する前に診断できる。 2. **統合サンプリングフレームワーク**: トレースとログの両方を対象とした初の統合サンプリングフレームワーク。既存研究はトレースのみを対象としており、ログサンプリングは体系的に研究されていなかった。 3. **マルチモーダル分析**: トレース、ログ、メトリクスの3つのモダリティを統合し、より広範な故障パターンを検出可能。TraStrainerはメトリクスのみに依存していたのに対し、UniSageはより包括的。 4. **デュアルピラーアプローチ**: エッジケースベースサンプラー(常時アクティブ)と分析ガイドサンプラー(異常時にアクティブ)を組み合わせることで、正常時と異常時の両方に対応。 5. **解釈可能性**: サンプリング決定の根拠を明示的に提供(パターンテンプレート)することで、ブラックボックス的なアプローチと異なり透明性が高い。 #### 実験設定 **使用データセット**: 1. [[TrainTicket]]: 鉄道チケット予約システム - 41サービス、7,049トレース、534,541スパン、201,750ログ、16メトリクス - 33故障注入ケース、17ログベース評価ケース 1. [[Online Boutique]]: eコマースアプリケーション - 11サービス、297,936トレース、13,462,459スパン、3,907,981ログ、16メトリクス - 56故障注入ケース、9ログベース評価ケース 両データセットは[[2023__ESEC-FSE__Nezha - Interpretable Fine-Grained Root Causes Analysis for Microservices on Multi-modal Observability Data|Nezha]]ベンチマークから取得され、[[Kubernetes]]クラスタ上に展開 **故障タイプ**: - リソース関連: CPU競合、ネットワーク遅延 - コードレベル: エラーリターン、例外 **評価指標**: 1. サンプリング品質: - Coverage = (選択されたラベル付きデータ数)/(総ラベル付きデータ数) - ラベル付きデータは故障注入情報と手動検証に基づく 2. RCA精度: - Top-k Accuracy (AC@k): 上位k件に真の根本原因が含まれる確率 - Mean Reciprocal Rank (MRR): 最初に特定された根本原因のランクの逆数 - k = 1, 3で評価 **ベースライン手法**: サンプリング: - Uniform: ランダムサンプリング(ヘッドベース) - [[2021__ICWS__Sieve - Attention-based Sampling of End-to-End Trace Data in Distributed Microservice Systems|Sieve]]: Robust Random Cut Forest(RRCF)を使用した異常トレース検出 - [[2019__SoCC__Sifter - Scalable Sampling for Distributed Traces, without Feature Engineering|Sifter]]: 固定長トレースサブパスに基づく低次元モデル学習 - [[2024__ESEC-FSE__TraStrainer - Adaptive Sampling for Distributed Traces with System Runtime State|TraStrainer]]: トレースの多様性とメトリクスを考慮したバイアスサンプラー RCA: - [[2020__ISSRE__Unsupervised Detection of Microservice Trace Anomalies through Service-Level Deep Bayesian Networks|TraceAnomaly]]: ディープラーニングによる正常トレースパターン学習 - [[2021__IWQOS__Practical Root Cause Localization for Microservice Systems via Trace Analysis|TraceRCA]]: スペクトル分析による根本原因特定 - [[2021__WWW__MicroRank―End-to-End Latency Issue Localization with Extended Spectrum Analysis in Microservice Environments|MicroRank]]: PageRankとスペクトル分析の組み合わせ - [[2021__ISPA__Diagnosing Performance Issues in Microserviceswith Heterogeneous Data Source|PDiagnose]]: マルチモーダルデータを時系列に変換し投票による根本原因決定 #### 実験結果 **RQ1: サンプリング有効性** トレースカバレッジ: - OnlineBoutique (2.5%サンプリング): - UniSage: 0.565 - TraStrainer: 0.237 - Sieve: 0.118 - Sifter: 0.008 - Uniform: 0.025 - TrainTicket (2.5%サンプリング): - UniSage: 0.643 - TraStrainer: 0.220 - Sieve: 0.089 - Uniform: 0.025 ログカバレッジ: - OnlineBoutique (2.5%サンプリング): - UniSage: 0.943 - UniSage w/o A: 0.774 - UniSage w/o E: 0.853 - Uniform: 0.037 - TrainTicket (2.5%サンプリング): - UniSage: 0.982 - UniSage w/o A: 0.802 - UniSage w/o E: 0.885 - Uniform: 0.102 UniSageは全サンプリング予算において最高のカバレッジを達成。特に低予算(1-2.5%)での優位性が顕著。 **RQ2: RCA精度への影響** OnlineBoutiqueでのAC@1(2.5%サンプリング): - UniSage: 0.411 - PDiagnosis(フルデータ): 0.357 - TraStrainerベース最高値: 0.339 - Uniformベース: 0.071-0.125 TrainTicketでのAC@1: - UniSage: 0.545 - PDiagnosis(フルデータ): 0.303 - TraStrainerベース最高値: 0.333 - Uniformベース: 0-0.030 UniSageは限られたデータでフルデータのPDiagnosisを上回る性能を達成。分析後サンプリングパラダイムの優位性を実証。 アブレーション結果: - UniSage w/o M (メトリクスなし): MRR 0.562 → 0.620への低下 - UniSage w/o L (ログなし): MRR 0.573 → 0.620への低下 マルチモーダル統合の重要性を確認。 **RQ3: 効率性とスケーラビリティ** 処理時間(秒): - OnlineBoutique: - UniSage: 739.4 - Sieve: 3364.1 - TraStrainer: 1160.0 - Sifter: 448.4 - Uniform: 27.9 - TrainTicket: - UniSage: 142.3 (4.3秒/ケース) - Sieve: 57.4 - TraStrainer: 25.7 - Sifter: 18.6 - Uniform: 11.3 UniSageは大規模データセットで最速のベースラインより36.3%高速。 時間消費の内訳: - RCA: 49% - トレースサンプリング: 47% - ログサンプリング: 4% RCAがボトルネックではないことを示し、分析後サンプリングパラダイムの実用性を証明。 **その他の知見**: - 10分の観測可能性データを5秒以内で処理可能 - サンプリング品質の高さは下流RCAの精度に直接貢献 - エッジケースベースとアナリシスガイドの両サンプラーが不可欠(アブレーション研究で確認) ## Abstract トレースとログは、現代の分散システムにおける観測可能性と故障診断に不可欠です。しかし、その増大し続ける量は、大きなストレージオーバーヘッドをもたらし、トラブルシューティングを複雑にします。既存のアプローチは典型的にサンプル後分析パラダイムを採用しています。つまり、データヒューリスティックによってガイドされている場合でも、障害関連情報を不可避的に破棄し、システム動作の診断における透明性を妨げます。この問題に対処するため、我々はUniSageを導入します。これは、分析後意識パラダイムを使用してトレースとログの両方をサンプリングする初の統合フレームワークです。データを事前に破棄するのではなく、UniSageはまず完全なデータストリーム上で軽量かつマルチモーダルな異常検知と根本原因分析(RCA)を実行します。このプロセスは、正常シナリオと異常シナリオの両方を処理するためのデュアルピラーサンプリング戦略をガイドする、きめ細かいサービスレベルの診断洞察を生み出します。分析ガイドサンプラーはRCAによって示唆されたデータを優先し、エッジケースベースサンプラーは希少だが重要な動作が捕捉されることを保証します。これらのピラーは共に、過度な冗長性なしに重要なシグナルの包括的なカバレッジを保証します。広範な実験により、UniSageは最先端のベースラインを大幅に上回ることが実証されました。2.5%のサンプリングレートで、重要なトレースの56.5%と関連ログの96.25%を捕捉し、下流の根本原因分析の精度(AC@1)を42.45%向上させます。さらに、その効率的なパイプラインは10分の観測可能性データを5秒以内で処理し、本番環境における実用性を実証しています。