微軟開源 Python 庫 Lumos,用於自動監控 web 應用程序指標

image.png

技術編輯:芒果果丨發自 思否編輯部
SegmentFault 思否報道丨公衆號:SegmentFaultweb

微軟最近開源了 Lumos,這是一個 Python 庫,用於自動檢測和診斷「 web 規模」應用程序中的度量回歸。segmentfault

在一篇技術論文中,公司研究人員聲稱,Lumos 已經在 Skype 和微軟的開發團隊的數百萬次會話中進行了部署,從而使工程師可以檢測到數百項指標變化,並拒絕數千個由異常檢測器檢測出的錯誤警報。網絡

Lumos 優化檢測過程,將誤報率下降90%以上

在線服務的運行情況一般是經過隨時間跟蹤關鍵性能指標(KPI)來監測的。這些方面的迴歸須要跟進,由於它們可能代表存在重大問題,從而致使成本增長和潛在的用戶流失。可是,跟蹤每一個 KPI 迴歸的根本緣由很是耗時,由於單個異常可能須要數天或數週的時間進行調查。 異步

Lumos 是一種新穎的方法,它包含了現有的特定領域的異常檢測器,但將誤報率下降了90%以上。它經過提供最重要變量的優先列表來解釋度量值的變化,從而消除了肯定變化是因爲人口變化仍是產品更新的過程。 工具

該庫還具備更普遍的目的,即經過比較對照和治療數據集,同時又與時間序列成分保持不可知關係,從而瞭解任意兩個語料之間的度量差別(包括偏見)。性能

該論文的合著者表示:「 (Lumos)爲產品全部者提供了有關其應用程序的人口統計變化的關鍵看法,而且……它爲服務全部者肯定了改善其工程系統的機會。(Lumos)使工程師花費在診斷度量回歸上的時間更少,而將更多的時間用於構建使人興奮的功能。」測試

對比數據集,提供診斷度量回歸的假設

Lumos 利用 A / B 測試的原理來比較成對的數據集。 每一個數據集都是表格數據集,其中行對應於樣本,列值包括感興趣的度量,如表示 KPI 的變量,描述整體(如平臺、設備類型、網絡類型和國家) ,並提供診斷度量回歸的假設。 附帶的配置文件指定了運行工做流的超參數(變量)和數據集中哪些列對應於度量、不變量和假設列的詳細信息。大數據

Lumos 首先驗證數據集之間度量中的迴歸是否具備統計意義。 而後進行整體誤差檢查和整體誤差歸一化,以考慮兩個數據集之間的整體變化。 若是在數據被歸一化以後,度量中沒有統計上顯著的迴歸,度量中的迴歸能夠用整體的變化來解釋。 可是若是度量中的增量具備統計學意義,那麼這些特徵就會根據它們對目標度量中增量的貢獻進行排名。優化

微軟的研究人員說,Lumos 做爲主要的工具,用於監測與微軟的電話、會議和公共交換電話網服務(PSTN)的可靠性相關的數百項指標。 它運行在 Azure Databricks 上,該公司的基於 Apache spark 的大數據分析服務,根據優先級、複雜性和度量類型配置了多個工做。 而且做業異步完成,以致於每當檢測到異常時,它都會觸發 Lumos 工做流,若是庫肯定異常是合法問題,就會引起事件警報。spa

開發時間節省 65% 至 95%,Lumos 不能保證捕捉全部服務迴歸

參與研究的成員稱:「 Lumos 將開發時間節省了 65% 至 95%。咱們有 15 個主要指標,每一個指標都根據關鍵維度進行監控,好比平臺、租戶、會議類型(鏈接、撥號和建立呼叫) ,結果是咱們爲一個指標跟蹤了數千個時間序列。 咱們天天有數百萬個呼叫分支,每一個分支都會產生數百個遙測字段,做爲 Lumos 的輸入。」

微軟的研究人員也提出了警告,Lumos 並不能保證捕捉全部服務迴歸,而且若是沒有足夠的數據量就沒法提供意見。爲了解決這個問題,他們計劃專一於擴展對連續度量的支持,使用多變量特徵進行特徵排序,並引入特徵聚類以解決特徵排名中的多重共線性問題。

segmentfault 思否

相關文章
相關標籤/搜索