亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

基于Flink的動(dòng)態(tài)基線實(shí)戰(zhàn)總結(jié)

IT那活兒 / 4565人閱讀
基于Flink的動(dòng)態(tài)基線實(shí)戰(zhàn)總結(jié)

在大數(shù)據(jù)的背景下,隨著指標(biāo)的數(shù)量增加、指標(biāo)波動(dòng)幅度變大,設(shè)置固定閾值的方式顯得日漸乏力。為此,本文在公司自動(dòng)化運(yùn)維產(chǎn)品平臺(tái)上,通過(guò)研究動(dòng)態(tài)基線告警的算法,將實(shí)時(shí)指標(biāo)數(shù)據(jù)進(jìn)行處理并生成告警內(nèi)容。目前已有的基線計(jì)算算法,主要分為兩種,即靜態(tài)基線算法和動(dòng)態(tài)基線算法,不同指標(biāo)適用一種或多種算法,用于針對(duì)不同的監(jiān)控目的。


 1.動(dòng)態(tài)基線算法



根據(jù)現(xiàn)場(chǎng)人員的運(yùn)維的經(jīng)驗(yàn)以及實(shí)際監(jiān)控場(chǎng)景,目前場(chǎng)景中主要需要知道歷史曲線中最大值、最小值、平均值以及符合正態(tài)分布的標(biāo)準(zhǔn)差。本文針對(duì)具體的場(chǎng)景結(jié)合概率法給出了一種動(dòng)態(tài)基線算法。

首先為了提高算法的穩(wěn)定性,即減少數(shù)據(jù)異常對(duì)動(dòng)態(tài)基線的影響,需要對(duì)數(shù)據(jù)先進(jìn)行一些預(yù)處理,主要的目的是去除數(shù)據(jù)中極不合理的數(shù)據(jù),本文采用去除最大最小值的方式來(lái)進(jìn)行預(yù)處理。為了預(yù)處理的同時(shí),減少對(duì)數(shù)據(jù)過(guò)多的干涉,本文除去最大值和最小值的個(gè)數(shù)為5%,且向下取整,對(duì)于小于1個(gè),則按1個(gè)計(jì)算。即樣本如果為10個(gè),則應(yīng)該對(duì)數(shù)據(jù)去除1個(gè)最大值(10乘以0.050.5個(gè),由于0.5小于1應(yīng)當(dāng)按1個(gè)進(jìn)行計(jì)算),以及1個(gè)最小值(10乘以0.050.5個(gè),由于0.5小于1應(yīng)當(dāng)按1個(gè)進(jìn)行計(jì)算)。

假設(shè)指標(biāo)為X,指標(biāo)值每分鐘統(tǒng)計(jì)一次即每分鐘指標(biāo)值為value,動(dòng)態(tài)基線配置的統(tǒng)計(jì)時(shí)長(zhǎng)為q分鐘,一天的區(qū)間數(shù)量為m,去除最大值和最小值的個(gè)數(shù)y的公式為

區(qū)間內(nèi)數(shù)據(jù)經(jīng)過(guò)預(yù)處理之后有效樣本數(shù)為n,則指標(biāo)X的動(dòng)態(tài)基線的最大值max計(jì)算公式為:

指標(biāo)X的動(dòng)態(tài)基線的最小值min計(jì)算公式為:

指標(biāo)X的動(dòng)態(tài)基線的平均值μ計(jì)算公式為:

指標(biāo)X的動(dòng)態(tài)基線的標(biāo)準(zhǔn)差σ計(jì)算公式為:



   2.動(dòng)態(tài)基線的優(yōu)化


在真實(shí)的應(yīng)用場(chǎng)景中,往往數(shù)據(jù)不能按理想的狀態(tài)分布,真實(shí)數(shù)據(jù)中經(jīng)常會(huì)存在一些異常值,比如某一個(gè)時(shí)間點(diǎn)網(wǎng)絡(luò)波動(dòng)導(dǎo)致一個(gè)時(shí)間點(diǎn)的指標(biāo)值抖動(dòng)特別明顯,同時(shí)也存在數(shù)據(jù)不是一直連續(xù)存在斷點(diǎn)的情況,有的是場(chǎng)景本身如此,就像某個(gè)業(yè)務(wù)可能某一段時(shí)間一直有人辦理,而另一個(gè)時(shí)間段這個(gè)業(yè)務(wù)很少有人辦理或者沒(méi)有人辦理,數(shù)據(jù)的不連續(xù)性以及數(shù)據(jù)的異常值都讓動(dòng)態(tài)基線的準(zhǔn)確性有所降低。本文采用了插值法對(duì)數(shù)據(jù)進(jìn)行填充以及降噪處理,來(lái)提高數(shù)據(jù)的完整性,使基線曲線更加平滑。

對(duì)數(shù)據(jù)缺失的情況,有兩種方式進(jìn)行填充,直接采用相鄰的值進(jìn)行填充或者用平均值進(jìn)行數(shù)據(jù)的填充,以保證數(shù)據(jù)的完整及連續(xù)性??紤]到實(shí)際生產(chǎn)中的數(shù)據(jù),一般都會(huì)存在異常數(shù)據(jù),此時(shí)如果采用相鄰數(shù)據(jù)插值法,可能會(huì)用異常數(shù)據(jù)來(lái)進(jìn)行填充,導(dǎo)致基線的可參考性變差,從而影響告警的準(zhǔn)確性。本文采取了用平均值來(lái)填充斷點(diǎn)數(shù)據(jù)的方式,以減少對(duì)原有數(shù)據(jù)穩(wěn)定性的影響。

而對(duì)于異常數(shù)據(jù),具體的降噪處理為,首先,計(jì)算出每組指標(biāo)的平均值、最大值、最小值以及標(biāo)準(zhǔn)差。其次,在數(shù)據(jù)符合正態(tài)分布的情況下(本文的數(shù)據(jù)為現(xiàn)場(chǎng)主機(jī)性能數(shù)據(jù)以及現(xiàn)場(chǎng)業(yè)務(wù)辦理的日志數(shù)據(jù),經(jīng)過(guò)對(duì)歷史數(shù)據(jù)的測(cè)試符合正態(tài)分布),根據(jù)‘小概率事件’(事件發(fā)生概率小于0.05)以及‘3σ-原則’,一般的采用平均值代替或者邊界值μ-3σ或μ+3σ進(jìn)行替換,以保證數(shù)據(jù)不會(huì)大幅度的被修改,且修正后依然滿足之前的正態(tài)分布,為了保持?jǐn)?shù)據(jù)的原始屬性本文采用邊界值來(lái)對(duì)數(shù)據(jù)進(jìn)行修正。

對(duì)于異常數(shù)據(jù)的判斷,本文采用‘3σ-原則’。計(jì)算出符合正態(tài)分布的范圍(μ-3σ,μ+3σ),根據(jù)正態(tài)分布的原理,符合正態(tài)分布的數(shù)據(jù)落在這個(gè)范圍概率為99.73%,如果數(shù)據(jù)落在(μ-3σ,μ+3σ)范圍內(nèi)則認(rèn)為數(shù)據(jù)可以作為基線計(jì)算,否則需要對(duì)數(shù)據(jù)進(jìn)行降噪處理。

為了保持原有數(shù)據(jù)的真實(shí)性,具體的消除波峰以及填波谷的方法為,判斷每個(gè)指標(biāo)值value,如果value大于μ+3σ,則用μ+3σ進(jìn)行代替;如果小于μ-3σ,則用μ-3σ進(jìn)行代替;其余情況保持原值。

數(shù)據(jù)填充以及降噪公式為:

經(jīng)過(guò)對(duì)數(shù)據(jù)的重新填充以及降噪之后,數(shù)據(jù)的完整性得到了優(yōu)化,并且數(shù)據(jù)中的異常值也得到了一定的修正。此時(shí),再將修正之后的數(shù)據(jù),采用第一小節(jié)中的算法,用公式(2)、(3)、(4)、(5)重新計(jì)算出指標(biāo)的基線,作為告警時(shí)需要用到的動(dòng)態(tài)基線。


   3.基于Flink的動(dòng)態(tài)基線實(shí)現(xiàn)


為了將指標(biāo)的動(dòng)態(tài)基線更小粒度化,需要將指標(biāo)的Key按實(shí)際的場(chǎng)景進(jìn)行設(shè)計(jì),并且各個(gè)Key之間的基線計(jì)算互不影響。而Flink本身提供的KeyedStream,通過(guò)KeySelector函數(shù)來(lái)將數(shù)據(jù)流進(jìn)行分流,每個(gè)Key對(duì)應(yīng)一條屬于自己的流,并且各個(gè)流互不影響,恰好與動(dòng)態(tài)基線的這一設(shè)計(jì)思路一致。而且Flink本身框架的高吞吐性,很好的保證動(dòng)態(tài)基線生成的效率。

動(dòng)態(tài)基線的核心思想是結(jié)合時(shí)間計(jì)算出各個(gè)時(shí)間區(qū)間的理想基線,因此需要根據(jù)時(shí)間來(lái)劃分窗口,各個(gè)窗口有自己的一個(gè)基線數(shù)據(jù)。Flink的核心API就包含了窗口(window)機(jī)制,并且有水位(Watermarkers)機(jī)制來(lái)保證數(shù)據(jù)能正確的劃分到自己的窗口進(jìn)行收集、運(yùn)算以及清除。

基于Flink的動(dòng)態(tài)基線生成的具體步驟為:

step1: 設(shè)置Flink的source函數(shù),即消費(fèi)已有的歷史數(shù)據(jù);

step2: 根據(jù)數(shù)據(jù)的時(shí)間字段,定時(shí)更新Flink的Watermarkers,本文使用每來(lái)一條數(shù)據(jù)就進(jìn)行水位更新的方式;

step3: 定義KeySelector函數(shù),對(duì)數(shù)據(jù)流按指標(biāo)Key進(jìn)行分流,保證各個(gè)Key之間相互獨(dú)立;

step4: 每條KeyedStream設(shè)置一個(gè)基于業(yè)務(wù)時(shí)間(EventTime)的窗口,窗口大小可根據(jù)實(shí)際情況進(jìn)行定義,本文按2小時(shí)進(jìn)行劃分,即每?jī)尚r(shí)匯總一次窗口;

step5: 窗口匯總時(shí)表示該時(shí)間區(qū)間的數(shù)據(jù)都已經(jīng)到齊,此時(shí)觸發(fā)aggregate的匯總函數(shù),函數(shù)的功能為本文給出的動(dòng)態(tài)基線算法;

step6: 統(tǒng)計(jì)出基線數(shù)據(jù),保存。

基于Flink的動(dòng)態(tài)基線生成示例圖如圖1。

1基于Flink的動(dòng)態(tài)基線生成示例圖

1為了展示動(dòng)態(tài)基線生成的數(shù)據(jù)流轉(zhuǎn)圖,所以給出的并行度為1,實(shí)際環(huán)境中的動(dòng)態(tài)基線程序需要根據(jù)現(xiàn)場(chǎng)的機(jī)器性能以及數(shù)據(jù)量等因素,來(lái)調(diào)節(jié)并行度。

1BOSS_BILAPP_INTF調(diào)用量2小時(shí)統(tǒng)計(jì)時(shí)長(zhǎng)的動(dòng)態(tài)基線示例

時(shí)段

平均值

最大值

最小值

標(biāo)準(zhǔn)差

00:00

199.00

309.00

76.00

67.87

02:00

56.67

134.00

3.00

34.97

04:00

15.63

40.00

1.00

9.03

06:00

764.65

1345.00

286.00

246.00

08:00

1384.60

2080.00

596.00

303.03

10:00

978.43

1687.00

453.00

276.04

12:00

436.00

1479.00

3.00

451.77

14:00

354.78

704.00

31.00

168.06

16:00

262.03

563.00

68.00

143.99

18:00

296.07

648.00

72.00

147.67

20:00

313.31

760.00

149.00

149.85

22:00

345.75

803.00

160.00

153.66

1展示了業(yè)務(wù)BOSS_BIL與業(yè)務(wù)APP_INTF調(diào)用量,根據(jù)一天24小時(shí)的歷史數(shù)據(jù),以2小時(shí)的統(tǒng)計(jì)時(shí)長(zhǎng)劃分的動(dòng)態(tài)基線示例。
END


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/129965.html

相關(guān)文章

  • Flink實(shí)戰(zhàn)(六) - Table API & SQL編程

    摘要:每個(gè)在簡(jiǎn)潔性和表達(dá)性之間提供不同的權(quán)衡,并針對(duì)不同的用例。在這些中處理的數(shù)據(jù)類型在相應(yīng)的編程語(yǔ)言中表示為類。該是為中心的聲明性表,其可被動(dòng)態(tài)地改變的表表示流時(shí)。這種抽象在語(yǔ)義和表達(dá)方面類似于,但是將程序表示為查詢表達(dá)式。 1 意義 1.1 分層的 APIs & 抽象層次 Flink提供三層API。 每個(gè)API在簡(jiǎn)潔性和表達(dá)性之間提供不同的權(quán)衡,并針對(duì)不同的用例。 showImg(ht...

    lifefriend_007 評(píng)論0 收藏0
  • 你公司到底需不需要引入實(shí)時(shí)計(jì)算引擎?

    摘要:再如通過(guò)處理流數(shù)據(jù)生成簡(jiǎn)單的報(bào)告,如五分鐘的窗口聚合數(shù)據(jù)平均值。復(fù)雜的事情還有在流數(shù)據(jù)中進(jìn)行數(shù)據(jù)多維度關(guān)聯(lián)聚合塞選,從而找到復(fù)雜事件中的根因。因?yàn)楦鞣N需求,也就造就了現(xiàn)在不斷出現(xiàn)實(shí)時(shí)計(jì)算框架,而下文我們將重磅介紹我們推薦的實(shí)時(shí)計(jì)算框架。 前言 先廣而告之,本文摘自本人《大數(shù)據(jù)重磅炸彈——實(shí)時(shí)計(jì)算框架 Flink》課程第二篇,內(nèi)容首發(fā)自我的知識(shí)星球,后面持續(xù)在星球里更新,這里做個(gè)預(yù)告,今...

    HackerShell 評(píng)論0 收藏0
  • Flink 全網(wǎng)最全資源(視頻、博客、PPT、入門、實(shí)戰(zhàn)、源碼解析、問(wèn)答等持續(xù)更新)

    摘要:由于配置流是從關(guān)系型數(shù)據(jù)庫(kù)中讀取,速度較慢,導(dǎo)致實(shí)時(shí)數(shù)據(jù)流流入數(shù)據(jù)的時(shí)候,配置信息還未發(fā)送,這樣會(huì)導(dǎo)致有些實(shí)時(shí)數(shù)據(jù)讀取不到配置信息。從數(shù)據(jù)庫(kù)中解析出來(lái),再去統(tǒng)計(jì)近兩周占比。 showImg(https://segmentfault.com/img/remote/1460000019367651); Flink 學(xué)習(xí)項(xiàng)目代碼 https://github.com/zhisheng17/f...

    Dr_Noooo 評(píng)論0 收藏0
  • Flink實(shí)戰(zhàn)(八) - Streaming Connectors 編程

    摘要:默認(rèn)情況下,當(dāng)數(shù)據(jù)元到達(dá)時(shí),分段接收器將按當(dāng)前系統(tǒng)時(shí)間拆分,并使用日期時(shí)間模式命名存儲(chǔ)區(qū)。如果需要,可以使用數(shù)據(jù)元或元組的屬性來(lái)確定目錄。這將調(diào)用傳入的數(shù)據(jù)元并將它們寫入部分文件,由換行符分隔。消費(fèi)者的消費(fèi)者被稱為或等。 1 概覽 1.1 預(yù)定義的源和接收器 Flink內(nèi)置了一些基本數(shù)據(jù)源和接收器,并且始終可用。該預(yù)定義的數(shù)據(jù)源包括文件,目錄和插socket,并從集合和迭代器攝取數(shù)據(jù)...

    beita 評(píng)論0 收藏0
  • Flink 靈魂兩百問(wèn),這誰(shuí)頂?shù)米。?/b>

    摘要:由于配置流是從關(guān)系型數(shù)據(jù)庫(kù)中讀取,速度較慢,導(dǎo)致實(shí)時(shí)數(shù)據(jù)流流入數(shù)據(jù)的時(shí)候,配置信息還未發(fā)送,這樣會(huì)導(dǎo)致有些實(shí)時(shí)數(shù)據(jù)讀取不到配置信息。從數(shù)據(jù)庫(kù)中解析出來(lái),再去統(tǒng)計(jì)近兩周占比。 Flink 學(xué)習(xí) https://github.com/zhisheng17/flink-learning 麻煩路過(guò)的各位親給這個(gè)項(xiàng)目點(diǎn)個(gè) star,太不易了,寫了這么多,算是對(duì)我堅(jiān)持下來(lái)的一種鼓勵(lì)吧! showI...

    Guakin_Huang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<