# Localizing Failure Root Causes in a Microservice through Causality Inference
> [!abstract] 概要(abstract の日本語訳)
> インターネットアプリケーションがその柔軟性と明確なロジックのためにマイクロサービスアーキテクチャを採用するケースが増えている。マイクロサービスの安定性はこれらのアプリケーションのサービス品質にとって極めて重要である。正確な障害根本原因の箇所特定は、オペレーターがマイクロサービスの障害を迅速に回復し、損失を緩和するのに役立つ。クロスマイクロサービスの障害根本原因特定は十分に研究されているが、単一マイクロサービス内の障害根本原因をどのように特定してそのマイクロサービスを迅速に緩和するかはまだ研究されていない。本研究では、MicroCause というフレームワークを提案し、マイクロサービス内の障害根本原因監視指標を正確に特定する。MicroCause は、時系列データの逐次的関係を正確に捉えるシンプルで効果的な PCTS(path condition time series)アルゴリズムと、監視データの因果関係・時間的順序・優先度情報を統合した新しい TCORW(temporal cause oriented random walk)手法を組み合わせる。世界トップクラスのオンラインショッピングサービスから収集した 86 件の実世界障害チケットに基づいて MicroCause を評価した。実験により、イントラマイクロサービス障害根本原因特定における MicroCause の AC@5 は 98.7% であり、最良ベースライン手法より 33.4% 大幅に高いことが示された。
## 論文情報
- **タイトル**: Localizing Failure Root Causes in a Microservice through Causality Inference
- **著者**: Yuan Meng¹⁴、Shenglin Zhang²*、Yongqian Sun²、Ruru Zhang²、Zhilong Hu²、Yiyin Zhang³、Chenyang Jia³、Zhaogang Wang³、Dan Pei¹⁴
- **所属**: ¹清華大学、²南開大学、³Alibaba Group、⁴BNRist(北京国家情報科学技術研究センター)
- **媒体**: IEEE/ACM IWQoS 2020(International Symposium on Quality of Service)
- **発表年**: 2020
- **URL**: https://nkcs.iops.ai/wp-content/uploads/2020/07/paper-IWQOS2020-MicroCause.pdf
## 概要
マイクロサービス内(イントラマイクロサービス)の障害根本原因特定を初めて定式化した論文。単一マイクロサービスが持つ KPI・メトリクスの時系列データから、PCTS で伝播遅延つき因果グラフを構築し、TCORW で根本原因メトリクスをランキングする二段階パイプラインを提案する。従来の PC アルゴリズムが iid 仮定のために時系列間の時間遅れ因果を捉えられない問題と、相関ベースランダムウォークがコンファウンダーの影響で異種カテゴリ間の相関誤判定を起こす問題を、それぞれ PCTS と TCORW で解決した。
## 問題設定
- **対象**: 単一マイクロサービス内の KPI・メトリクス群(KPI:Web RT 等のユーザー知覚指標、メトリクス:上流 QPS・下流 RT・デプロイ環境の CPU/メモリ/JVM 指標等)
- **入力**: 障害チケット {マイクロサービス ID, 異常 KPI, タイムスタンプ}、障害時刻の 4 時間前から現在のメトリクス時系列
- **出力**: 根本原因となる可能性が高い上位 N 件のメトリクスリスト
- **前提**: 64 メトリクス + 4 KPI を監視、マイクロサービスは上流・自己(JVM/システム)・下流の 3 コンポーネント型から構成
- **新規性**: クロスマイクロサービス RCA(MonitorRank・CloudRanger 等)ではなく、単一マイクロサービス内の根本原因メトリクス特定は本研究が初(論文主張)
## 提案手法
### アーキテクチャ
MicroCause は 2 モジュールの並列処理から構成される。
**Figure 7: MicroCause 全体アーキテクチャ**
![[_attachments/paper-IWQOS2020-MicroCause/fig07-microcause-architecture.png]]
(Figure 7. 左: KPI 異常検知で起動。中央上: PCTS による障害因果グラフ学習(FCGL)。中央下: SPOT による異常検知(AD)—メトリクス・異常時刻・異常度を出力。右: TCORW が 2 つの出力を統合してランキング。失敗チケット X の例では Web QPS が rank 1、JVM YGC Time が rank 2、Middleware1 RT が rank 3 として出力される。Source: Figure 7, MicroCause.)
### PCTS(Path Condition Time Series)
PC アルゴリズムは観測データを iid サンプルとして扱うため、時系列間の時間遅れ因果関係(例: Web QPS の異常が 1 分後に Web RT 異常を引き起こす)を学習できない。PCTS は気候科学で使われた改良 PC(PCMCI、Runge et al. Science Advances 2019)を根本原因分析に初めて応用し、この限界を解消する。
**アルゴリズムの核心**:
1. 入力: N 本の時系列(KPI + メトリクス)$I_t^i$、最大ラグ $\tau_{max}$
2. 各時点の変数 $I_t^i$ の親候補集合 $\hat{P}(I_t^i) = (I_{t-1}^*, \ldots, I_{t-\tau_{max}}^*)$ を初期化
3. スライディングウィンドウで条件付き独立性検定(有意水準 $\alpha_{IPC}$)を実施。$I_{t-\tau}^j \perp I_t^i | S$ が棄却できなければ $I_{t-\tau}^j$ を親候補から除外
4. 点のグラフ $G_C$(各ノードが 1 時点 1 変数)を時系列グラフ $G_{FCG}$(各ノードが 1 本の時系列)に集約: $I_{t-\tau}^j \in \hat{P}(I_t^i)$ ならエッジ $e_{ji} \in E_{FCG}$
PC との比較では、PCTS が因果グラフを連結(根本原因から KPI まで到達可能)に保つのに対し、PC は時系列を iid として扱うため孤立サブグラフを生成し、根本原因到達不可能になる事例が頻繁に発生する(Figure 8)。
**Figure 5: 伝播遅延を持つ時系列間の因果関係**
![[_attachments/paper-IWQOS2020-MicroCause/fig05-propagation-delay.png]]
(Figure 5. 17:16 に Web QPS が異常となり、17:17 に Web RT、17:18 に Middleware1 Consumer QPS が異常化。PC(iid 仮定)は 17:18 のデータ点のみを見て Middleware1 Consumer QPS → Middleware1 Consumer RT の同時的因果しか学習できないが、PCTS はスライディングウィンドウで時間遅れ因果(Web QPS → Web RT → Middleware1 Consumer QPS)を捕捉する。Source: Figure 5, MicroCause.)
### 異常検知(SPOT)
メトリクスの異常検知には SPOT(Siffer et al. KDD 2017)を使用。極値理論(extreme value theory)に基づいてデータの突発的な変化を検知し、過去分布の動的しきい値を生成する。検知タイプはメトリクス種別で設定(QPS・メモリ系:上下しきい値、成功率:下しきい値、その他:上しきい値)。
各メトリクス $M_i$ の異常度 $\eta_{max}^i$ を以下で定義:
$\eta_{max}^i = \max_{k \in O} \frac{|M_k^i - \phi_{M_k^i}|}{\phi_{M_k^i}}$
ここで $O$ は異常点のインデックス集合、$\phi_{M_k^i}$ は SPOT が生成したしきい値。
### TCORW(Temporal Cause Oriented Random Walk)
従来のランダムウォーク(相関ベース)は「異常 KPI に相関が高い = 根本原因である可能性が高い」という仮定に基づくが、監視指標は異種カテゴリ間で相関が高い(例: Web RT と Middleware Consumer RT は同じスパイク形状で高相関、本当の根本原因 Web QPS はレベルシフト型で低相関)。TCORW は偏相関でコンファウンダーを除去し、この問題を解決する。
**3 ステップ構成**:
**Step 1 — 因果指向ランダムウォーク(Cause Oriented Random Walk)**:
遷移確率行列 $Q$ を偏相関 $R_{pc}$ で構築(Pearson 相関ではなく偏相関を使う理由: コンファウンダーの影響を除去するため):
- 前向きステップ(結果 → 原因方向): $Q_{ij} = R_{pc}(v_{a_k}, v_j | Pa(v_{a_k}) \setminus v_j, Pa(v_j))$
- 後向きステップ(原因 → 結果方向、局所最小値を避けるため): $Q_{ji} = \rho \cdot R_{pc}(v_{a_k}, v_i | Pa(v_{a_k}) \setminus v_i, Pa(v_i))$
- 自己ステップ(近傍より高相関なら留まる): $Q_{ii} = \max[0, R_{pc}(\ldots) - P_{pc}^{max}]$
$N_{rw} = 1000$ ステップのランダムウォークで各ノードの訪問回数 $c_i$ を取得。失敗チケット X では Web QPS が 270 回(最多)、Middleware1 RT が 182 回、JVM YGC Time が 75 回。
**Step 2 — 潜在根本原因スコア**:
$\gamma_i = \lambda \bar{c}_i + (1-\lambda) \bar{\eta}_{max}^i$
$\lambda = 0.1$ が最適(ランダムウォーク訪問回数 10%、異常度 90%)。異常でないメトリクスが高訪問回数を持つ場合に異常度が根本原因でないことを示す役割を担う。
**Step 3 — 優先度つきランキング(Algorithm 1)**:
メトリクスを 3 レベルに分類:
- Level 1(上流): Web QPS、Middleware Provider QPS
- Level 2(自己): JVM 関連・システム関連・下流 QPS
- Level 3(下流): Middleware Consumer RT/成功率
各レベルで $\gamma_i$ 降順で上位 2 件を選出 → 計 6 件を異常時刻 $t_i$ の昇順でランキング → 上位 N 件を出力。
**Figure 2: 障害因果グラフの例(失敗チケット X)**
![[_attachments/paper-IWQOS2020-MicroCause/fig02-causal-graph-example.png]]
(Figure 2. 根本原因 W-QPS(Web QPS、黄色)から CPU・Load・Mem・GC-T・Thread・MC1-QPS・MC1-RT を経て異常 KPI W-RT(Web RT、赤色)に向かう有向因果グラフ。PCTS が構築する $G_{FCG}$ の例。Source: Figure 2, MicroCause.)
**Figure 6: 失敗ケースの監視指標時系列**
![[_attachments/paper-IWQOS2020-MicroCause/fig06-monitoring-indicators.png]]
(Figure 6. ケース {Microservice A, Web RT, 22:45-22:55}。上: 異常 KPI(Web RT、青)は 22:45 に大スパイク。中上: 根本原因(Web QPS、青)は 22:45 前後に level shift 型の周期的スパイク。中下: Middleware1 Consumer RT(黒)は 22:45 に一時スパイク。下: JVM FGC Time(緑)は基底ノイズのみ。相関ベース手法は Web RT と Middleware1 Consumer RT の同形スパイクで誤判定するが、TCORW は偏相関で Web QPS を正しく根本原因として特定する。Source: Figure 6, MicroCause.)
## 新規性
| 先行研究の課題 | MicroCause の解決策 |
|---|---|
| PC アルゴリズムが iid 仮定のため時系列間の時間遅れ因果を学習できず、孤立サブグラフを生成(CloudRanger・Microscope) | PCTS がスライディングウィンドウ + PCMCI ベースの条件付き独立性検定で伝播遅延を捕捉し、連結因果グラフを保証 |
| 相関ベースランダムウォークがカテゴリ同士の高相関(コンファウンダー)で誤根本原因を返す(TON18・MonitorRank・CloudRanger) | TCORW が偏相関(コンファウンダー除去)+ 異常度 + 優先度 + 時刻の 4 情報を統合 |
| クロスマイクロサービス RCA のみが研究されており、イントラマイクロサービス(単一マイクロサービス内)の根本原因メトリクス特定は未研究 | 問題の定式化から手法・評価まで一貫してイントラマイクロサービスに特化した初の体系的研究 |
## 実験設定
- **データセット**: 2019 年 9 月〜2020 年 1 月、大規模オンラインショッピングプラットフォームの 400+ マイクロサービスを監視して収集した 86 件のオンライン障害チケット。各マイクロサービスは 64 メトリクス + 4 KPI(Web RT、Middleware1 Provider RT、Middleware2 Receive RT、Middleware3 Receive RT)を持つ
- **評価指標**: AC@k(上位 k 件に真の根本原因が含まれる確率)、Avg@k($k' = 1, \ldots, k$ での AC@k' の平均)
- **ベースライン**:
- 異常時刻順(Anomaly Time Order)
- TON18 / MonitorRank: システムツール依存グラフ + 一次ランダムウォーク
- CloudRanger: PC 構築グラフ + 二次ランダムウォーク
- Microscope: PC + Pearson 相関係数スコアリング
## 実験結果
### 総合性能(Table III)
| 手法 | AC@1 | AC@2 | AC@5 | Avg@5 |
|---|---|---|---|---|
| **MicroCause** | **46.7%** | **62.7%** | **98.7%** | **69.7%** |
| TON18 / MonitorRank | 34.7% | 48.0% | 65.3% | 48.2% |
| CloudRanger | 19.0% | 32.9% | 69.6% | 46.8% |
| Microscope | 12.2% | 21.9% | 29.3% | 23.9% |
| Anomaly Time Order | 11.4% | 21.5% | 43.0% | 28.4% |
MicroCause は最良ベースライン(TON18/MonitorRank)比で AC@1 +12.0%・AC@2 +14.7%・AC@5 +33.4%・Avg@5 相対改善 +40% 以上を達成。
### PCTS の優位性(Table IV)
| グラフ構築 | AC@1 | AC@2 | AC@5 | Avg@5 |
|---|---|---|---|---|
| PCTS(MicroCause) | 46.7% | 62.7% | 98.7% | 69.7% |
| PC(iid 仮定) | 44.9% | 59.0% | 93.6% | 67.4% |
PCTS は PC 比 AC@5 で +5.1%。孤立サブグラフ生成を防ぐことで連結経路上のランダムウォークが正しく機能する。
### TCORW の優位性(Table V)
| ランダムウォーク | AC@1 | AC@2 | AC@5 | Avg@5 |
|---|---|---|---|---|
| **TCORW(MicroCause)** | **46.7%** | **62.7%** | **98.7%** | **69.7%** |
| RW-1(一次) | 34.7% | 48.0% | 65.3% | 48.2% |
| RW-2(二次) | 29.3% | 46.7% | 62.7% | 46.3% |
PCTS → PC 置換で AC@5 が 30% 超下落することから、PCTS がパイプライン全体の性能を律速するボトルネックであることが分かる。
### パラメータ感度(Figure 9)
**Figure 9: λ と ρ のパラメータ感度**
![[_attachments/paper-IWQOS2020-MicroCause/fig09-parameter-sensitivity.png]]
(Figure 9. (a) λ(因果訪問カウント重み)感度: λ=0.1 が最適。λ < 0.8 の範囲では AC@5 ≥ 90%、Avg@5 ≈ 0.7 を維持し頑健。(b) ρ(後向きステップ重み)感度: ρ > 0 であれば性能がほぼ変化せず非常に頑健。Source: Figure 9, MicroCause.)
- **λ**: 0.1 が最適だが、λ < 0.8 の範囲では AC@5 ≥ 90% を維持(異常度 $\eta_{max}^i$ の寄与が大きいほど良い)
- **ρ**: 0 より大きければ性能は安定(後向きステップがあれば十分)
## 考察
### 強み
- **PCTS の実用的有効性**: 気候科学向けの PCMCI を AIOps に初めて適用し、時系列因果グラフが孤立サブグラフ化する問題を解決。AC@5 では 98.7% という高水準を達成した
- **TCORW の設計根拠の明確さ**: 「相関 ≠ 因果」(Citation [19][20])という原則に基づいて偏相関を採用し、コンファウンダー除去の必要性を実験的に実証した
- **ドメイン知識の最小限利用**: メトリクス優先度レベル(Table II)というシンプルなドメイン知識を組み込み、黒箱システムツール(Hadoop・OpenStack API)への依存を排除した
- **パラメータ頑健性**: λ < 0.8、ρ > 0 の広い範囲で高性能を維持し、ハイパーパラメータチューニングの負担が少ない
### 弱点・課題
- **AC@1 が 46.7% にとどまる**: 上位 1 件での正解率は 5 割未満。実運用での活用には operator が上位 N 件を確認する必要がある
- **単一マイクロサービスの 86 件のみの評価**: 評価データが 1 つのオンラインショッピングプラットフォームの 1 サービス(64 メトリクス + 4 KPI)に限定されており、他のドメイン・規模への汎化は未検証
- **メトリクス優先度レベル(Table II)がドメイン固有**: 3 レベル分類(上流 Level 1・自己 Level 2・下流 Level 3)はマイクロサービス固有の優先度知識であり、他の分散システムへの転用時に再設計が必要
- **計算コスト未評価**: PCTS の計算量($O(N^2 \cdot T \cdot \tau_{max})$ 相当)は論文で評価されておらず、大規模メトリクス環境(200+ メトリクス)への適用可能性が不明。Pham+ ASE 2024 は MicroCause が 2 時間制限超過と報告
- **PCMCI の理論的保証がない状況での適用**: Runge+ 2019 は時系列因果発見のための手法だが、MicroCause は「根本原因特定」という介入知識(Pearl の L2)を必要とするタスクに観測データ(L1)の手法を適用しており、理論的限界は論文では議論されていない
## 関連研究との位置づけ
| 種別 | 手法 | 関係学習 | 根本原因推論 |
|---|---|---|---|
| クロスマイクロサービス | TON18 | OpenStack APIs | ランダムウォーク |
| クロスマイクロサービス | MonitorRank | Hadoop ツール | ランダムウォーク |
| クロスマイクロサービス | CloudRanger | PC | 二次ランダムウォーク |
| クロスマイクロサービス | Microscope | PC | Pearson 相関 |
| **イントラマイクロサービス** | **MicroCause(本論文)** | **PCTS** | **TCORW** |
## 出典検査メモ(チャットのみ・ページ非掲載)
主要数値の出典:
- ✅ AC@5 = 98.7%、AC@1 = 46.7%、Avg@5 = 69.7% — Table III(PDF p.7)
- ✅ ベースライン比 +33.4% — Table III(65.3% vs 98.7%)
- ✅ PCTS vs PC の AC@5 差 +5.1% — Table IV(93.6% vs 98.7%)
- ✅ 86 件、Sep 2019 〜 Jan 2020、400+ マイクロサービス — Section V-A(PDF p.7)
- ✅ λ=0.1 最適、λ < 0.8 で AC@5 ≥ 90% — Figure 9 + Section V-E(PDF p.8)
- ✅ PCMCI = Runge et al. Science Advances 2019 — Reference [10](PDF p.9)
- ✅ SPOT = Siffer et al. KDD 2017 — Reference [18](PDF p.9)
- ⚠️ "初の手法"(first work)— 論文 p.2「To the best of our knowledge」記載(著者の主張)