SQL老司机,居然是这样智能挖掘异常日志
摘要:?提取異常日志是個大難題 面對海量的日志(TB乃至PB級別),如何從日志中挖掘出異常信息對于大部分的開發者而言是一個大難題。例如,判斷機器的延時是否正常,部分request是否正常。通常,我們對于異常的數據,要及時的報警,以盡快的處理。
提取異常日志是個大難題
面對海量的日志(TB乃至PB級別),如何從日志中挖掘出異常信息對于大部分的開發者而言是一個大難題。例如,判斷機器的延時是否正常,部分request是否正常。通常,我們對于異常的數據,要及時的報警,以盡快的處理。
通常我們是怎么搞得呢? 在以前,依賴于開發者的經驗,來根據某些特定的特征,判斷是否達到了閾值,例如根據延時是否達到了某個特定的值,或者http 響應碼5xx的比例達到了某個閾值。這個閾值,依賴于資深的開發者的豐富的經驗。
AI dev/ops
AI算法的迅猛發展,給異常日志挖掘提供了新的方向。大名鼎鼎的AI領域專家吳恩達(Andrew NG),在他所教授的Machine Learning課程中提供了一種Abnormal Detection算法。算法通過訓練數據集,獲得一個正態分布。然后檢測目標數據是否落在了正態分布的邊緣位置,如果落在了邊緣位置,則認為是一個異常數據。
算法步驟:
接下來,我們介紹如何在SQL中使用該算法來檢測異常。
日志服務提供的異常檢測算法
以延時為例,我們來看哪些延時是異常的。 延時的分布一般是這樣的:
不滿足正太的需求,要把上述圖形轉化成正太分布,對latency 求對數:log(latency)
- 值μ和方差σ^2:
stddev即標準差
variance即方差
avg_ln即ln(latency)的均值
avglatency即latency的均值
- 提取異常數據
把方差標準差和均值帶入公式,使用where篩選出來小于0.01的結果,即異常值。可以看到,獲得的結果,明顯大于軍latency的均值。
原文鏈接
干貨好文,請關注掃描以下二維碼:
總結
以上是生活随笔為你收集整理的SQL老司机,居然是这样智能挖掘异常日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你的食物变质没?用AI算法来检测一下吧
- 下一篇: linux cmake编译源码,linu