監(jiān)控異常分析系統(tǒng)

前言


對(duì)于DEVOPS或者AIOPS來(lái)說(shuō)浮庐,對(duì)于監(jiān)控指標(biāo)的異常檢測(cè),大部分公司還處于閾值觸發(fā)告警乎婿,而沒(méi)辦法提前通過(guò)指標(biāo)的突變進(jìn)行報(bào)警今阳,此篇文章針對(duì)幾款熱門的開(kāi)源devops異常檢測(cè)項(xiàng)目進(jìn)行深入的代碼級(jí)別的學(xué)習(xí)分析,從而積累足夠的知識(shí)點(diǎn)去設(shè)計(jì)自己的將監(jiān)控異常指標(biāo)檢測(cè)模塊逊躁。

開(kāi)源軟件


# Metis

- 騰訊開(kāi)源的異常分析組件

- 地址: https://github.com/Tencent/Metis

- 代碼結(jié)構(gòu)為經(jīng)典mvc service dao controller的分層結(jié)構(gòu)似踱,不在做詳解因?yàn)榉呛诵拇a。

* 訓(xùn)練模型service路徑 app/service/time_series_detector/detect_service.py

首先介紹一下數(shù)據(jù)集data_c,data_b核芽,data_a, 代表的含義如下圖的一周前囚戚、一天前、當(dāng)天:


?? process_train方法里定義起一個(gè)線程通過(guò)__generate_model方法進(jìn)行訓(xùn)練轧简,__generate_model里定義使用time_series_detector/algorithm/xgboosting.py模塊里的xgb_train方法進(jìn)行訓(xùn)練驰坊,在time_series_detector/model路徑下生成task_id+'_model'的文件以及task_id+'_features'文件,__calculate_features方法進(jìn)行features的預(yù)處理, 首先標(biāo)準(zhǔn)化normalized時(shí)間序列數(shù)據(jù)哮独,標(biāo)準(zhǔn)化的方法為為當(dāng)天的data_a的平均值拳芙,如果平均值大于1,則所有數(shù)據(jù)除以平均值,否則返回實(shí)際值:

標(biāo)準(zhǔn)化時(shí)序數(shù)據(jù)后皮璧,然后就是比較核心的features提取了舟扎,具體提取的內(nèi)容在time_series_detector/feature/下,分別提取statistical features ,fitting_feature,classification_feature,最后使用__save_libsvm_format持久化feature到本地悴务。

在time_series_detector/algorithm/xgboosting.py里的xgb_train方法里經(jīng)過(guò)了剛才的一些列過(guò)程使用xgboost模塊先訓(xùn)練feature然后訓(xùn)練model代碼如下:


預(yù)測(cè)部分算法如下睹限,分為量值以及率指(百分比)的預(yù)測(cè)。

- statisc算法

在系統(tǒng)里定義是判斷時(shí)序數(shù)據(jù)的(最后一個(gè)值 - 時(shí)序數(shù)據(jù)的平均值) > 偏差系數(shù) * 時(shí)序數(shù)據(jù)的標(biāo)準(zhǔn)差abs(X[-1] - np.mean(X[:-1])) >self.index * np.std(X[:-1])

- polynomial+Ridge算法

多項(xiàng)式回歸加上嶺回歸的算法讯檐,先計(jì)算時(shí)間序列平均值羡疗,如果大于1則標(biāo)準(zhǔn)化將時(shí)序數(shù)據(jù)除以平均值,然后預(yù)測(cè)是否大于閾值

- ewma算法

系統(tǒng)里的實(shí)現(xiàn)說(shuō)真的我沒(méi)看懂,但是指數(shù)加權(quán)移動(dòng)平均值算法的做法就是算變指數(shù)變化的時(shí)候每一項(xiàng)都一個(gè)加權(quán)系數(shù)在里面裂垦,主要作用是使得一些近期的數(shù)據(jù)的影響力大一些顺囊。

- IsolationForest算法

關(guān)于孤立樹(shù)的詳細(xì)文章請(qǐng)看http://www.reibang.com/p/1b020e2605e2

簡(jiǎn)單理解的話,就是去隨機(jī)從一組數(shù)據(jù)里抽樣然后算max,min然后隨機(jī)沖max到min之間選一個(gè)值蕉拢,然后根據(jù)這個(gè)值為根將數(shù)據(jù)分叉成樹(shù)特碳,然后通過(guò)一個(gè)計(jì)算節(jié)點(diǎn)到根距離的函數(shù),算法優(yōu)點(diǎn)是比較容易發(fā)現(xiàn)一組數(shù)據(jù)的異常孤立的噪點(diǎn)晕换,對(duì)于時(shí)序數(shù)據(jù)的話只能說(shuō)是一個(gè)觀察點(diǎn)午乓。

量值 經(jīng)歷一下四種算法的預(yù)測(cè),詳細(xì)代碼均在time_series_detecotor下闸准。

polynomial+Ridge益愈、ewma、statistic夷家、iforest四種算法里但凡有一種預(yù)測(cè)算法是超過(guò)偏差閾值蒸其,將使用xgb再次進(jìn)行預(yù)測(cè),如果四中算法預(yù)測(cè)都正常库快,則返回正常摸袁。

率值 預(yù)測(cè)。

只進(jìn)行statistic的預(yù)測(cè)


# prophet

- 一個(gè)facebook開(kāi)源的long? term anomaly detector义屏,這只是一個(gè)庫(kù)并不是完全的解決方案靠汁,如果你的監(jiān)控是用的prometheus那么你很幸運(yùn)可以看一下Redhat上面的給出的與prophet結(jié)合的解決方案https://events.linuxfoundation.org/wp-content/uploads/2017/12/AIOps-Anomaly-Detection-with-Prometheus-Marcel-Hild-Red-Hat.pdf

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蜂大,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蝶怔,更是在濱河造成了極大的恐慌奶浦,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踢星,死亡現(xiàn)場(chǎng)離奇詭異澳叉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)斩狱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門耳高,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人所踊,你說(shuō)我怎么就攤上這事泌枪。” “怎么了秕岛?”我有些...
    開(kāi)封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵碌燕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我继薛,道長(zhǎng)修壕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任遏考,我火速辦了婚禮慈鸠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘灌具。我一直安慰自己青团,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布咖楣。 她就那樣靜靜地躺著督笆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诱贿。 梳的紋絲不亂的頭發(fā)上娃肿,一...
    開(kāi)封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音珠十,去河邊找鬼料扰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛焙蹭,可吹牛的內(nèi)容都是我干的晒杈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼壳嚎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼桐智!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起烟馅,我...
    開(kāi)封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤说庭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后郑趁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體刊驴,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年寡润,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捆憎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梭纹,死狀恐怖躲惰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情变抽,我是刑警寧澤础拨,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站绍载,受9級(jí)特大地震影響诡宗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜击儡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一塔沃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阳谍,春花似錦蛀柴、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至茧痒,卻和暖如春肮韧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旺订。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工弄企, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人区拳。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓拘领,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親樱调。 傳聞我的和親對(duì)象是個(gè)殘疾皇子约素,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355