4種API效能惡化根因分析

2023-03-22 12:01:24
摘要:服務發生效能惡化時,需要投入大量人力分析效能異常根因,分析成本高,耗時長。我們提出了一種先在異常呼叫鏈內部分析候選根因,再在全域性拓撲環境下對候選根因進行匯聚的二級分析方法,克服了呼叫鏈之間異常相互影響導致根因難以確定的問題,快速識別和定位惡化介面的根因。

本文分享自華為雲社群《【AIOps專題】API效能惡化根因分析》,作者:DevAI。

背景介紹

當微服務系統發生效能惡化問題時,真正有問題的服務和與它相關的服務,都會出現指標異常以及發出告警。大量的告警讓運維人員無法確定哪個服務才是惡化根因,只能逐個服務去檢查,排除掉那些本身並沒有異常的服務,定位成本高。自動化的惡化根因定位服務對於快速處理基於服務的系統惡化是非常重要的。

圖例 呼叫鏈上的根因定位

基於長尾任務的效能惡化根因分析

一種常見的根因分析方法是將耗時長尾事件作為效能異常的根因事件。首先獲得指定時間視窗內的惡化呼叫鏈,遍歷介面惡化關聯的多個呼叫鏈,選擇耗時最長的一條;再基於耗時主導原則,對這條耗時最長的呼叫鏈找到耗時最長的呼叫事件,並將其作為惡化根因。這種方法的主要缺點在於,只考慮服務的耗時情況,認為根因只會發生在耗時最長的一條惡化呼叫鏈,對呼叫鏈結構異常、引數錯誤等導致的效能異常不具有識別能力;

基於單呼叫鏈拓撲的效能惡化根因分析

基於單呼叫鏈拓撲的效能惡化定位方法,首先從歷史成功呼叫鏈資料中提煉正常呼叫鏈模板,對於每條待測用例,匹配最佳模板,再進行差異分析,最後排序推薦根因。這種根因分析方法僅著眼於根因在單條呼叫鏈上的影響因素,忽略了異常在呼叫鏈之間的相互影響以及呼叫鏈之間的差異。

基於惡化傳播圖的效能惡化根因分析

此方法針對目前相關性分析方法沒有很好考慮到微服務動態位移的問題,設計新的異常評分演演算法以衡量微服務元件的惡化程度,構建惡化傳播圖;然後對傳統隨機遊走演演算法進行優化。然而基於隨機遊走的方法都存在一個缺陷,即當系統中同時出現多個惡化時,服務可能會受到疊加影響,而導致定位的準確性下降。

基於拓撲匯聚的效能惡化根因分析方法

針對當前痛點,我們提出了一種基於拓撲匯聚的效能惡化根因分析方法,該方法最創新的特徵是提出了一種先在異常呼叫鏈內部分析候選根因,再在全域性拓撲環境下對候選根因進行匯聚的二級分析方法,綜合利用了微服務場景下儘可能多的資訊,並進行了綜合匯聚和多指標評價,克服了呼叫鏈之間異常相互影響導致根因難以確定的問題,快速識別和定位惡化介面事件粒度的根因,減少了根因定位分析成本。方案主要包含兩個模組,預處理模組和匯聚定位模組。

預處理模組通過輸入時間視窗內的正常呼叫鏈資料,學習正常呼叫鏈模式並建立全域性拓撲,包括三個部分:建立正常模板庫、提取真實節點拓撲和維護反向可達性表。

匯聚定位模組首先對候選根因從三個維度進行分數計算,再根據匯聚公式對候選根因進行匯聚,包含三個維度的計算:鏈上得分的計算、鏈間得分的計算和拓撲得分的計算;再根據組合公式,得到最終的根因推薦分數,分數越高表示越有可能是根因。

總結

針對目前效能惡化定位成本高的問題,我們提出了一種先在異常呼叫鏈內部分析候選根因,再在全域性拓撲環境下對候選根因進行匯聚的二級分析方法,並提出了一種計算三項得分的多維評價方法,綜合考慮真實環境中的多種因素,以更準確更高效地推薦根因。

文章來自:PaaS技術創新Lab,PaaS技術創新Lab隸屬於華為雲,致力於綜合利用軟體分析、資料探勘、機器學習等技術,為軟體研發人員提供下一代智慧研發工具服務的核心引擎和智慧大腦。我們將聚焦軟體工程領域硬核能力,不斷構築研發利器,持續交付高價值商業特性!加入我們,一起開創研發新「境界」!

PaaS技術創新Lab主頁連結:https://www.huaweicloud.com/lab/paas/home.html

 

點選關注,第一時間瞭解華為雲新鮮技術~