# CRISP
[[Uber]] と [[UC Santa Barbara]] が共同開発した、マイクロサービスアーキテクチャ向けのクリティカルパス分析ツール。[[Jaeger]] トレースを入力とし、RPC 依存グラフからクリティカルパスを抽出・集約する。
CRISP という名前は "**CR**itical path" と "**SP**an" から取られている。
## 主な機能
- **トップダウン分析**: 特定エンドポイントの CPA をフレームグラフ・ヒートマップで可視化し、サービスオーナーがボトルネックをドリルダウンできる。
- **ボトムアップ分析**: 全エンドポイントに影響する内部 API をランク付けして浮き上がらせ、基盤エンジニアがシステム全体を最適化できる。
- **異常検知**: CCCT(クリティカル呼び出しコンテキスト木)を SCPV(サービスクリティカルパスベクタ)に変換し、オートエンコーダで正常パターンを学習・推論する。
## 設計上の特徴
- [[Jaeger]] / OpenTracing のスパン形式から「spawn」「sync」イベントを推定して論理 DAG を構成する。
- クロックスキュー対処: 1ms 閾値緩和とスパンクリッピングで切り捨て率 5% 未満を達成。
- TraceAnomaly の STV(全呼び出しパス)に対し、SCPV はクリティカルパスのみを符号化し特徴次元を最大 25 分の 1 に削減。
## Uber での実績
- 約 4,000 マイクロサービス・約 40,000 エンドポイントへ実投入(2022 年時点)
- 1 日あたり約 200 GB・約 1,800 万スパンを処理、約 256 CPU 時間
- 3 か月の運用で 5 件のパフォーマンス課題を特定
- 訓練最大 27.77 倍・推論最大 66.85 倍の高速化・偽陽性アラート 50% 削減
## OSS
コードの一部が OSS として公開されている: https://github.com/uber-research/CRISP
## 出典
- [[@2022__USENIX ATC__CRISP - Critical Path Analysis of Large-Scale Microservice Architectures]](§4–7 全般)