最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
怎么理解Flink指標(biāo)、監(jiān)控與告警

怎么理解Flink指標(biāo)、監(jiān)控與告警,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)霞山,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

 

為什么我們關(guān)注指標(biāo)監(jiān)控


我們將以天氣舉例。

指標(biāo):衡量和描述對(duì)象的方式


  • 可量化:比如最近天氣很熱。今天比昨天熱嗎?北京的溫度比上海更熱嗎?大家就沒有辦法評(píng)判,所以溫度就是這樣一個(gè)指標(biāo),來量化我們天熱的程度。
  • 標(biāo)準(zhǔn)化:我們習(xí)慣說的溫度是攝氏溫度,如果有人跟你講華氏溫度,說今天77度,你就會(huì)覺得很奇怪,氣溫怎么會(huì)有這么高的數(shù)值,因此,我們的指標(biāo)還需要是標(biāo)準(zhǔn)化的,需要有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。
  • 多維度:南方的同學(xué)覺得35度悶得喘不過氣來;北方的同學(xué)覺得35度好像也就那樣。因?yàn)槲覀兂藲鉁剡@個(gè)指標(biāo)會(huì)影響人體的舒適度之外,還有一個(gè)指標(biāo)叫空氣濕度。所以衡量天氣需要結(jié)合多個(gè)維度的指標(biāo)。

監(jiān)控:對(duì)指標(biāo)進(jìn)行監(jiān)測(cè)和控制


  • 實(shí)時(shí):比如天氣預(yù)報(bào),實(shí)時(shí)的預(yù)報(bào)才是我們需要的監(jiān)控內(nèi)容。
  • 易用:相比于電視機(jī)里固定時(shí)間播報(bào)的天氣信息,手機(jī) App 就是易用的天氣監(jiān)控軟件。
  • 可查詢歷史:比如前幾天某地一直在下雨,河流湍急,可能影響我出行的選擇。

今天的分享從以下四個(gè)方面展開:

  • 監(jiān)控報(bào)警的鏈路——基于美團(tuán)點(diǎn)評(píng)實(shí)時(shí)計(jì)算平臺(tái)的實(shí)踐
  • 常用的監(jiān)控報(bào)警項(xiàng)——哪些指標(biāo)可以高效地衡量我的作業(yè)
  • 指標(biāo)的聚合方式——橫看成嶺側(cè)成峰
  • 指標(biāo)監(jiān)控的應(yīng)用——有哪些常見的表達(dá)方式供參考

1. 監(jiān)控報(bào)警的鏈路

1.1 監(jiān)控報(bào)警鏈路

美團(tuán)點(diǎn)評(píng)的指標(biāo)監(jiān)控報(bào)警的鏈路如下圖所示。  首先是我們對(duì)日志和指標(biāo)都會(huì)進(jìn)行統(tǒng)一的集中化的收集。Reporter (2.8和3.1中有介紹)把 Flink 作業(yè)的指標(biāo)作為一條條日志打出來。  然后再通過日志收集收上去,收到 Kafka 里面。接下來會(huì)通過實(shí)時(shí)作業(yè)做解析和聚合,再將得到的指標(biāo)落到 Kafka 里,作為實(shí)時(shí)數(shù)據(jù)源。

下游會(huì)根據(jù)不同的需求,對(duì)不同的數(shù)據(jù)做不同的處理和展示。日志數(shù)據(jù)會(huì)落到 ES 里供查詢使用,同時(shí)也會(huì)根據(jù)關(guān)鍵字接實(shí)時(shí)作業(yè)進(jìn)行處理,做日志相關(guān)報(bào)警;數(shù)值指標(biāo)會(huì)落到 OpenTSDB 里供大家查詢,同時(shí)也支持各類的指標(biāo)報(bào)警。  最終這些內(nèi)容還是會(huì)集中到我們的實(shí)時(shí)計(jì)算平臺(tái)里,給用戶做一個(gè)統(tǒng)一的展示。

整個(gè)鏈路下來,主要分為三個(gè)關(guān)鍵環(huán)節(jié)。

  1. 日志收集部分,我們首先是要把這些日志和指標(biāo)進(jìn)行統(tǒng)一化、集中化的收集。對(duì)于這一環(huán),之前兩個(gè)講師也講過, Flink 現(xiàn)在提供的方式有三種:一個(gè)是在 Flink UI 上可以直接看到這個(gè)作業(yè)的一些指標(biāo);第二種 REST API 從作業(yè)上獲取指標(biāo);第三種就是配各種第三方的 Reporter 。美團(tuán)這邊是在 slf4j 的基礎(chǔ)上增加自己的維度信息格式化后往下發(fā)。
  2. 解析展示部分,使用一些 Flink 作業(yè)去解析聚合平臺(tái)所有作業(yè)的指標(biāo)數(shù)據(jù),展示給用戶,也提供給下游使用。
  3. 監(jiān)控和報(bào)警部分,對(duì)于聚合完成了的指標(biāo),做一些個(gè)性化的可配置的規(guī)則報(bào)警。

怎么理解Flink指標(biāo)、監(jiān)控與告警

1.2 指標(biāo)展示:Grafana

Grafana 支持比較多的數(shù)據(jù)源格式,比如 ES、OpenTSDB 等;它有個(gè)變量的功能,可以看某個(gè)作業(yè)的指標(biāo),也可以一起對(duì)比看。

怎么理解Flink指標(biāo)、監(jiān)控與告警
怎么理解Flink指標(biāo)、監(jiān)控與告警

相比于自研的指標(biāo)展示工具,Grafana 配置界面會(huì)比較方便,省時(shí)省力,性價(jià)比高。如果是只是想簡(jiǎn)單的展示一下所有的作業(yè)的指標(biāo)的話,Grafana 是個(gè)很好的選擇,它也可以被外嵌在其他的頁(yè)面上。但是 Grafana 圖的類型比較單一,在實(shí)際的直接使用過程中可能還會(huì)有一些局限性。

2. 常用的監(jiān)控項(xiàng)


下面我們來關(guān)注下一般會(huì)使用哪些指標(biāo)來衡量作業(yè)運(yùn)行的狀況。

2.1 常用的指標(biāo)

■ 系統(tǒng)指標(biāo)  

系統(tǒng)指標(biāo)在 Flink 官網(wǎng)有相應(yīng)的說明。

  • 對(duì)于系統(tǒng)指標(biāo)最常關(guān)注的是作業(yè)的可用性,如 uptime (作業(yè)持續(xù)運(yùn)行的時(shí)間)、fullRestarts (作業(yè)重啟的次數(shù))。

  • 第二個(gè)關(guān)注的是作業(yè)的流量,可以通過 numRecordsIn、numBytesInLocal 等相關(guān)指標(biāo)來關(guān)注作業(yè)每天處理的消息數(shù)目及高峰時(shí)間段的流量,通過關(guān)注這些指標(biāo)可以觀察作業(yè)的流量表現(xiàn)是否正常。

  • 然后是 CPU(如:CPU.Load)、內(nèi)存(如:Heap.Used )、GC ( 如:GarbageCollector.Count、GarbageCollector.Time )及網(wǎng)絡(luò) ( inputQueueLength、outputQueueLength) 相關(guān)指標(biāo),這些指標(biāo)一般是用來排查作業(yè)的故障信息。

  • 另外是 checkpoint相關(guān)信息,例如最近完成的 checkpoint 的時(shí)長(zhǎng)( lastCheckpointDuration )、最近完成的 checkpoint 的大小( lastCheckpointSize )、作業(yè)失敗后恢復(fù)的能力( lastCheckpointRestoreTimestamp )、成功和失敗的 checkpoint 數(shù)目( numberOfCompletedCheckpoints、numberOfFailedCheckpoints )以及在 Exactly once 模式下 barrier 對(duì)齊時(shí)間( checkpointAlignmentTime )。

  • 還有就是 connector的指標(biāo),例如常用的 Kafka connector ,Kafka 自身提供了一些指標(biāo),可以幫助我們了解到作業(yè)最新消費(fèi)的消息的狀況、作業(yè)是否有延遲等。


■     自定義指標(biāo)  

自定義指標(biāo)是指用戶可以在自己的作業(yè)邏輯中進(jìn)行埋點(diǎn),這樣可以對(duì)自己的業(yè)務(wù)邏輯進(jìn)行監(jiān)控。

正如其他講師所提到的,現(xiàn)在的 Flink 作業(yè)更像是一種微服務(wù),不僅關(guān)心作業(yè)是否把所有數(shù)據(jù)都處理完了,還希望作業(yè)可以7×24小時(shí)不間斷的運(yùn)行來處理數(shù)據(jù)。因此在業(yè)務(wù)邏輯中重要的指標(biāo)在 Flink 中也會(huì)很重要。

  • 比如處理邏輯耗時(shí)打點(diǎn),例如包含復(fù)雜邏輯的業(yè)務(wù)系統(tǒng),可以通過在邏輯前后進(jìn)行打點(diǎn),這樣可以查看每條消息處理完這個(gè)邏輯的耗時(shí)。

  • 另一塊是外部服務(wù)調(diào)用的性能, 在 Flink 作業(yè)中可能需要訪問外部存儲(chǔ)(如 redis ), 可以通過打點(diǎn)來查看請(qǐng)求的耗時(shí)、請(qǐng)求的成功率等。

  • 還有是緩存命中率,有時(shí)候由于數(shù)據(jù)集過大,我們只訪問熱數(shù)據(jù),此時(shí)會(huì)在內(nèi)存中緩存一部分信息,我們可以監(jiān)控緩存命中率,如果緩存命中率非常高說明緩存有效,如果緩存命中率非常低,一直在訪問外部存儲(chǔ),就需要考慮緩存設(shè)計(jì)的是否合理。


另外還有幾類是關(guān)于作業(yè)的處理邏輯,如果處理邏輯拋出異常將會(huì)導(dǎo)致作業(yè) fullRestarts,此時(shí)一般會(huì)將這些異常進(jìn)行 catch 住,如果涉及復(fù)雜計(jì)算的可以通過重試機(jī)制多試幾次,如果重試后未成功則丟棄數(shù)據(jù) 。此時(shí)可以將處理數(shù)據(jù)的占比或者數(shù)據(jù)的某些特征作為指標(biāo)上報(bào),這樣可以觀察此類數(shù)據(jù)的占比來觀測(cè)數(shù)據(jù)處理是否存在異常。又如 filter 過濾的數(shù)據(jù)占比可以觀測(cè) filter 的邏輯是否正常,還有窗口等涉及時(shí)間的算子需要監(jiān)測(cè)超時(shí)丟棄的數(shù)據(jù)的占比等。  

怎么理解Flink指標(biāo)、監(jiān)控與告警

2.2 如何確定哪些指標(biāo)需要關(guān)注?


  1. 第一點(diǎn)是作業(yè)狀態(tài)相關(guān)的, 如作業(yè)是否出故障、作業(yè)是否存活、作業(yè)是否穩(wěn)定運(yùn)行、影響作業(yè)可用性的風(fēng)險(xiǎn)因素(如上次 checkpoint 是否成功、最近成功的 checkpoint 的時(shí)間)。

  2. 第二點(diǎn)是作業(yè)性能相關(guān)的,如作業(yè)的處理延遲、數(shù)據(jù)傾斜、性能瓶頸(如外部訪問)等。

  3. 第三點(diǎn)是業(yè)務(wù)邏輯相關(guān),如上游數(shù)據(jù)質(zhì)量、新上的邏輯是否存在問題、數(shù)據(jù)是否存在丟失( Exactly once 語(yǔ)義中數(shù)據(jù)是否允許丟失)。


怎么理解Flink指標(biāo)、監(jiān)控與告警

3. 指標(biāo)的聚合方式


在上面介紹了常用的監(jiān)控指標(biāo),接下來介紹下這些指標(biāo)應(yīng)該怎么看。同一個(gè)指標(biāo)可能在機(jī)器的角度去看,也可能在作業(yè)的角度去看,不同的角度會(huì)得出不同的結(jié)果。

首先是作業(yè)的聚合維度,細(xì)粒度的如 Task、Operator 維度,稍微大點(diǎn)的粒度如 Job、機(jī)器、集群或者是業(yè)務(wù)維度(如每個(gè)區(qū)域)。當(dāng)查問題時(shí)從大的粒度著手,向細(xì)粒度進(jìn)行排查。如果想看全局的現(xiàn)狀則需要比較粗的粒度??梢詫⒃贾笜?biāo)進(jìn)行上報(bào)然后根據(jù)不同場(chǎng)景進(jìn)行聚合。如果要做性能測(cè)試則需要細(xì)粒度的查詢,如 task 粒度。

怎么理解Flink指標(biāo)、監(jiān)控與告警

另一方面是聚合的方式,如總和、均值、最大值、最小值、變化率等,需要注意是要消除統(tǒng)計(jì)誤差,對(duì)數(shù)據(jù)取移動(dòng)平均或者固定時(shí)間的平均來使曲線變得更加平滑。還有是差值,如上游數(shù)據(jù)量與下游數(shù)據(jù)量的差值、最新 offset 與消費(fèi)的 offset 的差值。另外對(duì)于衡量 xx 率、xx 耗時(shí)可以使用 99 線。  最后還有一點(diǎn)需要關(guān)注的,也是我們?cè)趯?shí)際工作中遇到的坑,即  指標(biāo)的缺失  ,如果沒有拿到指標(biāo),作業(yè)狀態(tài)則變成了黑盒,需要去關(guān)注作業(yè)的指標(biāo)收集是否正常,需要監(jiān)測(cè)是否存在指標(biāo)丟失,是單個(gè)指標(biāo)丟失還是整個(gè)作業(yè)的指標(biāo)丟失。

怎么理解Flink指標(biāo)、監(jiān)控與告警

最后是在觀察指標(biāo)的時(shí)候可能需要多個(gè)指標(biāo)復(fù)雜聚合查詢,如常見的時(shí)間線對(duì)比,例如之前正常的作業(yè)在今天出現(xiàn)反壓,可以通過查詢今天數(shù)據(jù)量的同比昨天數(shù)據(jù)量的增長(zhǎng)。另外不同的業(yè)務(wù)有不同的趨勢(shì),例如外賣存在高峰時(shí)間段,可以對(duì)比數(shù)據(jù)量在高峰時(shí)間段的環(huán)比增長(zhǎng)來進(jìn)行衡量。還有關(guān)注的指標(biāo)的持續(xù)時(shí)間,如作業(yè)的數(shù)據(jù)延遲,如果延遲時(shí)間較長(zhǎng)則作業(yè)可能存在異常;還有指標(biāo)的周期性,如果指標(biāo)的變化存在周期性,則考慮是否因?yàn)闀r(shí)間窗口的影響。

還有需要考慮的是結(jié)合外部系統(tǒng)進(jìn)行計(jì)算,例如上游為消費(fèi) Kafka ,除了想知道當(dāng)前消費(fèi)的狀況,還想查看上游的數(shù)據(jù)量。例如該圖中,藍(lán)線為上游 Kafka 的數(shù)據(jù)量,紅線為作業(yè)的 source 算子的 output 數(shù)據(jù)量,可以看到在午高峰和晚高峰基本上是持平的狀態(tài), 上游數(shù)據(jù)在午高峰及晚高峰有較高的增長(zhǎng),雖然在高峰時(shí)刻有反壓,但主要原因是由于上游數(shù)據(jù)量的增長(zhǎng)而不是由于作業(yè)的處理能力不足。如果上游有多個(gè)算子可以將多個(gè)算子的數(shù)據(jù)量進(jìn)行相加,這也是我們除了使用 Grafana 外還自研的前端進(jìn)行展示的原因,自研前端可以將指標(biāo)更加靈活的進(jìn)行展示。

怎么理解Flink指標(biāo)、監(jiān)控與告警

4. 指標(biāo)監(jiān)控的應(yīng)用


4.1 作業(yè)異常報(bào)警

  • 作業(yè)狀態(tài)異常:包括作業(yè)任務(wù)的異常狀態(tài)如 failing,也包括 uptime 等指標(biāo)的異常。
  • 作業(yè)無指標(biāo)上報(bào):作業(yè)無指標(biāo)上報(bào)會(huì)給作業(yè)的負(fù)責(zé)人發(fā)報(bào)警;當(dāng)上報(bào)的作業(yè)多到一定程度了,達(dá)到預(yù)值的時(shí)候會(huì)直接給平臺(tái)的管理員發(fā)報(bào)警。
  • 指標(biāo)達(dá)到閾值:是大家最常用的報(bào)警項(xiàng)。比如:
    • 處理量跌0
    • 消費(fèi)延遲(落后一定數(shù)量、持續(xù)一定時(shí)間)
    • 失敗率、丟失率等
  • 個(gè)性化:實(shí)時(shí)計(jì)算平臺(tái)中有很多類任務(wù),不同的任務(wù)它會(huì)有不同的特性。比如:
    • 報(bào)警時(shí)段:不同的時(shí)間段報(bào)警,可能需要有不同的域值,或者不同的報(bào)警方式(公司通訊軟件報(bào)警、電話報(bào)警等)

    • 聚合方式:不同的業(yè)務(wù)可能會(huì)有不同的報(bào)警的聚合的方式,這個(gè)也是需要盡量的兼容的。
  • 錯(cuò)誤日志、關(guān)鍵詞日志:當(dāng)錯(cuò)誤日志到達(dá)一定量或者日志出現(xiàn)某關(guān)鍵詞時(shí),觸發(fā)報(bào)警。

注意:報(bào)警系統(tǒng)本身的穩(wěn)定性,  放到第1位,避免出現(xiàn)誤報(bào)、漏報(bào)、延遲。否則會(huì)影響業(yè)務(wù)方的準(zhǔn)確判斷。

4.2 指標(biāo)大盤
  • 反映平臺(tái)整體的現(xiàn)狀:
    • 異常值高亮
    • 多維度聚合
    • 時(shí)間線對(duì)比等
  • 及時(shí)發(fā)現(xiàn)并快速定位到故障
  • 給出平臺(tái)可優(yōu)化的方向
  • 便于統(tǒng)籌資源分配
4.3 自動(dòng)化運(yùn)維
運(yùn)維的幾種階段:

  • 無法運(yùn)維:沒有指標(biāo),作業(yè)狀態(tài)是個(gè)黑盒,出了問題一群人查代碼。
  • 手動(dòng)運(yùn)維:重啟,擴(kuò)容,回滾、遷移,降級(jí),糾正錯(cuò)誤代碼,優(yōu)化處理邏輯。手動(dòng)運(yùn)維表示無論在干什么,當(dāng)報(bào)警電話一來,你需要掏出電腦、手機(jī)去排查問題。
  • 輔助運(yùn)維:當(dāng)手動(dòng)運(yùn)維做多了,把大家的業(yè)務(wù)作業(yè)的各項(xiàng)指標(biāo)都進(jìn)行標(biāo)準(zhǔn)化,我們就可以得到一些參考值。把這些經(jīng)驗(yàn)匯總,作為其他同學(xué)的運(yùn)維的時(shí)候參考的建議,這樣即使是新人也可以快速借助這些輔助工具進(jìn)行處理,降低學(xué)習(xí)成本。
  • 智能運(yùn)維:智能運(yùn)維是不需要人處理,當(dāng)發(fā)生故障的時(shí)候,自動(dòng)操作的運(yùn)維方式。執(zhí)行作業(yè)的機(jī)器掛了,自動(dòng)拉起,自動(dòng)把作業(yè)啟動(dòng)起來。資源不足了,自動(dòng)去擴(kuò)容。線上的作業(yè)有問題,自動(dòng)切換到備用的作業(yè)……當(dāng)然目前能做到的這些只能解決一部分問題,一些代碼問題帶來的故障還是需要人為介入修復(fù) bug。

怎么理解Flink指標(biāo)、監(jiān)控與告警

Q&A


Q1:構(gòu)建一整套指標(biāo)系統(tǒng),指標(biāo)庫(kù)如何維護(hù)?需要去對(duì)程序進(jìn)行代碼級(jí)別的修改,還是修改配置即可?

A:  既然想做一整套的監(jiān)控系統(tǒng)自然希望這個(gè)指標(biāo)盡可能是一個(gè)可適配的方式,那么我們需要做什么?

  • 在設(shè)計(jì)整套系統(tǒng)的架構(gòu)時(shí),需要有一定的兼容性,不能只關(guān)注一類指標(biāo)。

  • 設(shè)計(jì)初期需要考慮有哪些類型的指標(biāo),每個(gè)類型的指標(biāo)有什么樣的特征,可能有哪些聚合的維度,用什么樣的方式去聚合。

  • 搭建模型。

  • 設(shè)計(jì),先把指標(biāo)的特征提取出來,然后對(duì)這些特征去進(jìn)行設(shè)計(jì),最后做一個(gè)能兼容的系統(tǒng),這樣對(duì)于已知類型的指標(biāo),就只需修改配置就可以擴(kuò)展了。


Q2:Grafana 平臺(tái)的展示效果很好,但是報(bào)警不友好;報(bào)警這塊有比較成熟的工具嗎?

A:  可以看看 Prometheus,報(bào)警還是挺成熟的。報(bào)警比指標(biāo)聚合更需要個(gè)性化的東西,如果需要功能非常完善的話,可能都需要考慮自研。

Q3:算子內(nèi)部可以獲取到 taskManager 的指標(biāo)嗎?

A:  通過 restful API 去拿,不推薦在算子內(nèi)部做,指標(biāo)這個(gè)東西本身不應(yīng)該影響你作業(yè)本身的處理邏輯,監(jiān)控應(yīng)該是一個(gè)比較外圍的東西。

Q4:   如何根據(jù)指標(biāo)發(fā)現(xiàn)作業(yè)問題的根源?

A:    按照指標(biāo)從粗到細(xì),可以參考 2.8 節(jié)和 3.1 節(jié)老師的教程。

Q5:  指標(biāo)數(shù)據(jù)量比較大,如何選擇存儲(chǔ)?

A:    可以選擇 openTSDB,其他 TSDB 也是可以的,像其他 Hive 或者 OLAP引擎 也是可以考慮的,指標(biāo)數(shù)據(jù)作為一種時(shí)序數(shù)據(jù),目前已有很多成熟的方案可以選擇。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


本文題目:怎么理解Flink指標(biāo)、監(jiān)控與告警
URL分享:http://fisionsoft.com.cn/article/pihdoj.html