Learned Execution Graphs for Anomaly Detection & Drift in APIs — Ritvik Pandya, JP Morgan Chase
三句話摘要
摩根大通支付團隊如何用執行圖(DAG)檢測請求異常,自動化監控並加速問題定位。 透過執行圖和分類漂移的系統化方法,將異常檢測從被動應急轉變為主動預測,結合灰度驗證和自動化實現快速、低風險的問題解決。 執行圖的作用:將複雜的分布式請求處理過程表示為DAG,清晰追蹤各節點的執行順序、上下文傳遞和循環情況,使異常定位從「整體變慢」精確到「某個具體節點變慢」,大幅提升診斷效率。
重點整理
重點- 1
執行圖的作用:將複雜的分布式請求處理過程表示為DAG,清晰追蹤各節點的執行順序、上下文傳遞和循環情況,使異常定位從「整體變慢」精確到「某個具體節點變慢」,大幅提升診斷效率。
- 2
漂移分類是核心:結構性漂移(系統中新增/刪除步驟)需更新基準線;規模漂移(服務處理能力不足導致變慢)需要擴容或改異步;協變量漂移(請求特徵分布變化,如國際業務占比上升)需維護多條基準線,而非簡單提高平均閾值。
- 3
分層檢查降低誤報:第一層檢查基準是否合規(類似機場查登機證),若正常直接通過;異常才進入第二/三層的深度分析,避免資源浪費和警報噪音,加快平均發現時間。
- 4
自動化需謹慎:部署任何自動化解決方案前必須評估風險,採用灰度策略(先在5~10%節點驗證),確認無誤後再推廣至100%,同時系統須具備部署感知能力以決定是否回滾。
實用技巧與重點
乾貨- 架構層次:邊緣層 → 網關 → 入口層 → 身份驗證/授權 → 編排層 → 後端服務
- 實例基準:整體請求處理 700 毫秒
- 工具/標準:OpenTelemetry、StarBench、Kafka、Opal 遙測
- 漂移類型:結構性漂移、規模漂移、協變量漂移
- 檢測方法:MMD (最大均值偏差)、KL 散度
- 部署策略:5%→10%→100% 灰度驗證
- 決策路徑:快速決策路徑(快但可能不精確) vs 偵察路徑(精確但耗時)
- 調優要點:
- 標籤需精細化(如「即時支付POST」vs「電匯支付POST」分開基準)
- 新端點考慮冷啟動,採用尾部跟蹤確認服務起止時間
- 窗口期應按客戶端明確界定
- 所有數據需可解釋(不只給分數,要說明原因)
- 系統須部署感知,能偵測新版本發布
結論
結論“透過執行圖和分類漂移的系統化方法,將異常檢測從被動應急轉變為主動預測,結合灰度驗證和自動化實現快速、低風險的問題解決。”
完整解析
詳細摩根大通的支付系統面臨著典型的分布式系統挑戰:用戶請求經過多層處理(邊緣層、網關、認證、編排、後端服務調用),任何環節變慢都可能影響整體體驗。Ritik 領導的團隊採用了執行圖(DAG)方法——將整個請求處理過程建模為有向無環圖,每個節點代表一個服務調用或處理步驟。這樣做的好處是明確記錄執行順序、上下文如何在節點間傳遞,以及重試和並行調用等複雜情況,使監控從「系統整體變慢」精確到「第七個節點變慢」。
檢測異常的核心是建立基準線並識別漂移。系統採用分層檢查策略:第一層檢查請求是否符合已知基準表現,類似於機場安檢——查看登機證無異常就放行,無需深入檢查。只有在檢測到延遲或偏差時,才進入第二層或更高層分析。這種策略大幅減少資源消耗和警報噪音。系統將漂移分為三類。結構性漂移是系統中新增或移除節點,比如為防欺詐新增檢查步驟——需要更新基準線。規模漂移發生在某服務因流量增加而響應變慢,可能需要擴容或改為異步呼叫。協變量漂移是請求特徵分布變化,例如業務從本地(60%)擴展到國際(40%+),不同地區請求的基準不同,需維護多條基準線而非簡單提高平均閾值。
完整的監控閉環包括:OpenTelemetry 持續採集遙測數據 → 透過 Kafka 和流處理進行實時評估 → 根本原因分析(基於系統已知的所有數據點)→ 自動分類識別漂移類型 → 評估自動化解決方案的風險 → 灰度部署策略(先在5%~10%節點驗證,監控一切正常後推廣至100%)。系統支援兩條決策路徑:快速路徑用於緊急響應,侦察路徑用於更精確但耗時的分析。
實施中的關鍵細節包括:標籤需精細化調整減少誤報,不應將所有 POST 請求用同一基準,應按用例分類(即時支付 vs 電匯支付);新端點啟動時考慮冷啟動問題,採用尾部跟蹤方法準確判斷服務起止時間;窗口期應按客戶端明確界定;所有數據應提供可解釋性,不只給健康分數,要解釋原因;整個系統需要部署感知能力,識別新版本上線並決定是否回滾。效果方面,平均問題發現時間大幅縮短,實現近乎實時的異常檢測。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


