實時異常預警

2021-08-11 05:47:04 字數 1423 閱讀 8682

線上業務的快速發展對系統穩定性提出了更高的要求。每次在系統出現異常波動時,如何及時、準確的發現並提醒業務方,顯得尤其重要。

這裡有很關鍵的兩個要求:

異常識別基於歷史資料,獲取當前時間點的可能數值範圍,當實際值在該範圍以外時,即認為資料異常。

最最簡單的方式當然是當同比或環比變化超出某一閾值時,即認為資料異常。但是這兩種方式存在一些問題:

如果將這兩種方式的優勢結合起來,同時考慮資料的整體變化和週期性變化,甚至考慮到歷史所有的資料對於當前值的影響,**結果的誤差將會更小。

異常檢測模型分為兩個部分,**器和比較器。歷史資料作為**器的輸入,輸出當前時間點的**值,並將當前時間點的**值和真實值通過比較器檢測資料是否異常。

hot-winters**器

hot-winters又稱三次指數平滑,基於歷史時間序列**當前值。它將時間序列分為三個部分,殘差分量(s),趨勢分量(t),週期分量(p),使用(x)表示**值。累加式公式如下:

其中,趨勢分量主要表達時間序列有保持上乙個變化態勢的趨勢,而週期分量主要表達時間序列週期性變化。

趨勢變化圖:

週期變化圖:

在我們的業務中,資料存在明顯的週期行變化,但不存在明顯的趨勢變化,所以我們考慮去除趨勢分量(其中k表示週期內時間點個數,(i-k)表示上一週期當前時間點的值)

α和γ則代表了歷史時間序列對於當前值的影響比重,越大則表示影響越小。

最終的**結果如下:

比較器得到**值和真實值之後,如果檢測資料異常呢?

首先猜想誤差應該集中在某乙個範圍,通過畫出誤差的直方分布圖發現,誤差值近似於正態分佈

95%**區間

對於正態分佈,在統計學中有乙個95%**區間的概念,即有95%的可能性數值落在**區間中。

95%**區間的範圍為 [μ - 1.96*δ, μ + 1.96*δ],其中μ表示期望值,δ表示標準差。

所以最終採用前50個時間點的誤差值來計算當前值的**區間,超出部分則認為資料異常。

實時專案4 預警需求

實時預警,是一種經常出現在實時計算中的業務型別。根據日誌資料中系統報錯異常,或者使用者行為異常的檢測,產生對應預警日誌。預警日誌通過圖形化介面的展示,可以提醒監控方,需要及時核查問題,並採取應對措施。需求 同一裝置,5分鐘內三次及以上用不同賬號登入並領取優惠劵,並且過程中沒有瀏覽商品。達到以上要求則...

流失預警模型 實時查詢

本篇主要做的是乙個流失預警模型實時查詢的乙個測試,需求描述 使用者名單請求判斷是否流失,秒級內返回判斷結果。操作場景如下 流失預警模型,使用者是否在未來一段時間內流失 牽涉到流失定義,使用者活躍度定義,使用者行為時間定義等 建立,用到了使用者最近行為特徵 行為趨勢特徵等,最後 是否流失 1流失,0留...

web報表輕鬆實現資料異常預警功能

在業務系統中,經常會看到這樣的資料顯示需求 一些特殊資料有規定的標準範圍,超出標準範圍的資料我們要標紅預警顯示,告知客戶此資料有異常,也就是我們說的資料預警,效果如下圖所示,紅色顯示了當運貨費大於100時的預警。這種效果更加清晰的顯示了異常資料,有助於使用者對異常資料進行分析判斷。如果不用報表工具,...