<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          揭秘百度微服務(wù)監(jiān)控:百度游戲服務(wù)監(jiān)控的演進(jìn)

          共 5753字,需瀏覽 12分鐘

           ·

          2021-08-09 05:15

          點(diǎn)擊上方“服務(wù)端思維”,選擇“設(shè)為星標(biāo)

          回復(fù)”669“獲取獨(dú)家整理的精選資料集

          回復(fù)”加群“加入全國(guó)服務(wù)端高端社群「后端圈」


          作者 | 大道
          出品 | 百度Geek說


          全文4583字,預(yù)計(jì)閱讀時(shí)間 9分鐘。


          一、背景


          隨著業(yè)務(wù)的快速發(fā)展,游戲服務(wù)端研發(fā)同學(xué)平均每人要維護(hù)2~3個(gè)微服務(wù),后續(xù)業(yè)務(wù)場(chǎng)景增多可能會(huì)引入更多微服務(wù),如何高效的獲悉整個(gè)微服務(wù)系統(tǒng)的運(yùn)行狀態(tài),業(yè)務(wù)異常時(shí)如何快速發(fā)現(xiàn)問題并解除故障,游戲服務(wù)端研發(fā)同學(xué)在監(jiān)控實(shí)踐上做了很多工作嘗試。


          初期的監(jiān)控基于公司的Argus監(jiān)控(日志服務(wù)器相關(guān)監(jiān)控)、Monitor監(jiān)控平臺(tái)(業(yè)務(wù)監(jiān)控)、Sia監(jiān)控(可視化監(jiān)控)等覆蓋了一些基礎(chǔ)的監(jiān)控,但是由于缺乏體系、缺少和業(yè)務(wù)的結(jié)合,整體的效果并不理想,不少問題依然是客服和產(chǎn)品同學(xué)反饋,同時(shí)在跟進(jìn)問題過程中研發(fā)最為頭疼的一個(gè)點(diǎn)是在問題定位上往往要花很長(zhǎng)的時(shí)間,這個(gè)對(duì)業(yè)務(wù)造成了一定的負(fù)面影響。在這種情況下我們系統(tǒng)化的梳理了面臨的問題并體系化的設(shè)計(jì)和優(yōu)化完善了監(jiān)控系統(tǒng),并著重針對(duì)問題定位做了和業(yè)務(wù)的深度結(jié)合,大大提升了問題的定位效率。


          下面將就我們監(jiān)控系統(tǒng)的建設(shè)過程整體介紹,希望對(duì)讀者有所幫助。


          二、微服務(wù)監(jiān)控初探


          監(jiān)控建設(shè)初期我們主要是基于百度的監(jiān)控基礎(chǔ)設(shè)施添加各種監(jiān)控,但是由于缺乏體系效果并不理想。盡管初探階段我們監(jiān)控能力不夠完善且能力較弱,但這些分散的監(jiān)控措施也幫助研發(fā)同學(xué)發(fā)現(xiàn)了不少系統(tǒng)問題,為后續(xù)的體系化和多維度組合監(jiān)控打下了基礎(chǔ)。


          2.1、日志和服務(wù)器監(jiān)控


          利用百度Argus監(jiān)控平臺(tái),實(shí)現(xiàn)對(duì)機(jī)器狀態(tài)和業(yè)務(wù)日志的監(jiān)控,游戲微服務(wù)借助機(jī)器及日志監(jiān)控能力對(duì)線上服務(wù)進(jìn)行了監(jiān)控的覆蓋。

          我們初期對(duì)Argus監(jiān)控的應(yīng)用偏單維化,結(jié)合業(yè)務(wù)場(chǎng)景的深度不夠,諸如某個(gè)問題某些實(shí)例的監(jiān)測(cè)閾值及多維度報(bào)警能力初期并沒有考慮設(shè)計(jì),下面是對(duì)于百度Argus監(jiān)控的能力和流程介紹:

                                  

          argus整體數(shù)據(jù)流如下,可以支持電話、SMS、短信及百度如流報(bào)警

                      

              

          日志相關(guān)監(jiān)控業(yè)界有大家熟悉的ELK Stack 方案(Elasticseach + Logstash + Kibana),使用Beats(可選)在每臺(tái)服務(wù)器上安裝后,作為日志客戶端收集器,然后通過Logstash進(jìn)行統(tǒng)一的日志收集、解析、過濾等處理,再將數(shù)據(jù)發(fā)送給Elasticsearch中進(jìn)行存儲(chǔ)分析,最后使用Kibana來進(jìn)行數(shù)據(jù)的展示。


          2.2、服務(wù)輪詢監(jiān)控


          利用百度monitor監(jiān)控平臺(tái),對(duì)于核心的接口采用定時(shí)輪詢檢測(cè)的機(jī)制來輔助監(jiān)控線上服務(wù)質(zhì)量,monitor平臺(tái)支持可視化配置,但是需要針對(duì)每個(gè)場(chǎng)景做定制化配置,隨著業(yè)務(wù)快速的迭代,這種監(jiān)控添加的效率和易用性已不能滿足業(yè)務(wù)的需求。

                          


          2.3、服務(wù)可視化監(jiān)控


          利用公司SIA智能監(jiān)控系統(tǒng),實(shí)現(xiàn)了服務(wù)流量、可用性、性能等指標(biāo)的監(jiān)控可視化,可以輔助業(yè)務(wù)研發(fā)可視化的觀察服務(wù)線上狀態(tài)并基于線上異常狀態(tài)報(bào)警。但是業(yè)務(wù)對(duì)于SIA智能監(jiān)控能力并沒有充分使用,導(dǎo)致可視化的輔助作用有限,智能能力沒有體現(xiàn)。


          圖3 監(jiān)控可視化

          對(duì)于業(yè)界的可視化監(jiān)控工具,有諸如Kibana、Grafana等,相關(guān)的能力都已很完善,基本可以滿足業(yè)務(wù)的各種展現(xiàn)需求,大家可以參考了解。


          三、微服務(wù)監(jiān)控演進(jìn)


          如上面所闡述的,監(jiān)控初探階段的監(jiān)控措施雖然可以輔助研發(fā)發(fā)現(xiàn)和定位一些問題,但是還是存在諸多問題,主要是如下四個(gè)方面:


          • 風(fēng)險(xiǎn)暴露滯后,大多報(bào)警發(fā)生時(shí)已造成影響;
          • 監(jiān)控缺乏統(tǒng)一規(guī)劃,相關(guān)監(jiān)控項(xiàng)混亂且覆蓋極不完整;
          • 監(jiān)控能力弱,無法提供有效異常信息;
          • 報(bào)警混亂,研發(fā)被報(bào)警信息轟炸;

          從整體監(jiān)系統(tǒng)建設(shè)成本和收益來看,我們不會(huì)將過去的監(jiān)控全部推翻,而是基于在現(xiàn)有基礎(chǔ)監(jiān)控的能力上加以完善。首先我們以系統(tǒng)化的視角對(duì)于監(jiān)控系統(tǒng)做全面設(shè)計(jì),然后基于設(shè)計(jì)強(qiáng)化監(jiān)控系統(tǒng)各個(gè)部分的能力。

          3.1、監(jiān)控系統(tǒng)化設(shè)計(jì)

          目標(biāo):有效預(yù)防、及時(shí)發(fā)現(xiàn)、快速止損;
          落地:基于系統(tǒng)化的設(shè)計(jì)目標(biāo),做了如下的落地思路拆解。
                                             

          實(shí)現(xiàn)上從風(fēng)險(xiǎn)控制、智能監(jiān)控、智能報(bào)警、高效定位四個(gè)方面來設(shè)計(jì)微服務(wù)系統(tǒng)的監(jiān)控系統(tǒng)化工作,整體流程如下:


          下面從風(fēng)險(xiǎn)控制、智能監(jiān)控、智能報(bào)警和高效定位四個(gè)方面逐一介紹。

          3.1.1風(fēng)險(xiǎn)控制設(shè)計(jì)

          線上問題發(fā)現(xiàn)的時(shí)機(jī)越早越好,由于研發(fā)同學(xué)水平客觀上存在差異,且通過cooder review無法有效規(guī)避上線問題的發(fā)生,所以游戲業(yè)務(wù)研發(fā)在自動(dòng)化case和發(fā)布環(huán)節(jié)做了較多的工作,以減少問題的發(fā)生。下面是研發(fā)做的主要風(fēng)險(xiǎn)控制項(xiàng),通過這些風(fēng)險(xiǎn)控制項(xiàng)的落地,目前已經(jīng)可以減少95%以上的上線中問題。
                      

          3.1.2智能監(jiān)控設(shè)計(jì)

          游戲業(yè)務(wù)初期的監(jiān)控,是分散的監(jiān)控添加:日志監(jiān)控使用argus,可視化的監(jiān)控實(shí)驗(yàn)SIA智能監(jiān)控平臺(tái),監(jiān)控的覆蓋和監(jiān)控系統(tǒng)之間的協(xié)同效果并沒有做全局考慮,這樣就暴露出一些問題,如:

          問題1:
          按照監(jiān)控對(duì)象劃分的監(jiān)控,是在單一維度上做到有效覆蓋,但是系統(tǒng)全局波動(dòng)異常如何探測(cè)?
          問題2
          某個(gè)實(shí)例因?yàn)榫W(wǎng)絡(luò)或機(jī)器磁盤偶發(fā)故障導(dǎo)致pvlost突增,如何高效的獲得信息?
          問題3:
          系統(tǒng)可用性波動(dòng),是某個(gè)機(jī)房的問題,還是特定接口的問題,或是訪問下游的異常?

          (1)智能異常檢測(cè)
          利用SIA系統(tǒng)的智能異常檢測(cè)算法,將耗時(shí)、流量、SLA指標(biāo)、收入等指標(biāo)納入到監(jiān)控體系,可以高效探測(cè)到系統(tǒng)的周期/非周期波動(dòng)異常,下面簡(jiǎn)單介紹下主要的算法。
                                           

          通過將上述指標(biāo)同游戲業(yè)務(wù)的流量、耗時(shí)、收入等指標(biāo)的結(jié)合,在系統(tǒng)周期性或非周期性的波動(dòng)時(shí),即使是較為緩慢的下降也可以通過這些周期性檢測(cè)工具
          有效檢測(cè),大大提高異常檢測(cè)覆蓋度。

          (2)全場(chǎng)景監(jiān)控覆蓋
          我們從4個(gè)象限覆蓋監(jiān)控,做到問題暴露無死角,同時(shí)針對(duì)諸如服務(wù)維度的監(jiān)控,還細(xì)化了多維度的篩選能力,力求從宏觀視角便于發(fā)現(xiàn)問題的同時(shí)也做到在微觀世界能夠輔助高效定位問題。
                                                         

          這里我們著重提下數(shù)據(jù)監(jiān)控,我們針對(duì)游戲業(yè)務(wù)的特殊化場(chǎng)景,細(xì)化了需要監(jiān)控的數(shù)據(jù)以及場(chǎng)景,以確保監(jiān)控的完整覆蓋,下面是數(shù)據(jù)相關(guān)的一些監(jiān)控項(xiàng)。


          (3)多維度監(jiān)控可視化輔助
          多維度篩選能力:服務(wù)、接口、錯(cuò)誤碼、機(jī)房、機(jī)器實(shí)例;
          異常多維度可視化 :如pvlost基于接口、機(jī)器、機(jī)房的分布;
          錯(cuò)誤分布可視化:分接口、分錯(cuò)誤碼;                          

          圖6 多維度監(jiān)控可視化

          3.1.3智能報(bào)警設(shè)計(jì)

          報(bào)警整體做了分級(jí)報(bào)警設(shè)計(jì),基于不同的場(chǎng)景設(shè)置不同的報(bào)警范圍和報(bào)警方式,減少了非重要報(bào)警的信息泛濫,同時(shí)在報(bào)警應(yīng)用上有如下整體設(shè)計(jì):

          (1)智能合并過濾與自動(dòng)升級(jí)


          智能過濾:減少報(bào)警信息的過渡泛濫,做一定的信息篩選;
          智能報(bào)警合并:通過信息的合并,提升報(bào)警的信息簡(jiǎn)介度,進(jìn)一步減少報(bào)警信息泛濫;
          報(bào)警自動(dòng)升級(jí):解決了困擾報(bào)警觸達(dá)不了值班人的問題,通過設(shè)置不同閾值擴(kuò)大到不同的范圍,并升級(jí)報(bào)警的形式從郵件->如流->短信->電話,且報(bào)警電話可以設(shè)置不斷的撥打直至有人響應(yīng)為止,解決了觸達(dá)的問題;

          (2)樣式內(nèi)容自定義
          對(duì)于普通的實(shí)例報(bào)警或服務(wù)報(bào)警,相應(yīng)報(bào)警信息按照固定格式進(jìn)行輸出;
          核心邏輯部分添加基于富文本的報(bào)警內(nèi)容定義,完整的展示報(bào)警信息和報(bào)警問題,并提供問題的上下文語(yǔ)義,大大提高了信息量,為定位問題提供了充足有效的信息。

          圖8 報(bào)警內(nèi)容樣式自定義

          3.1.4高效定位能力支持


          報(bào)警暴露信息高效對(duì)于關(guān)鍵核心邏輯采用Trace鏈路+機(jī)器人方式來實(shí)現(xiàn)報(bào)警的高效觸達(dá)和自定義化輸出,實(shí)現(xiàn)信息的高效傳遞;
          報(bào)警信息確認(rèn)高效部分注意考慮在異常信息報(bào)警后,為了確認(rèn)線上的相關(guān)完整日志數(shù)據(jù)和請(qǐng)求當(dāng)時(shí)數(shù)據(jù)情況的快速數(shù)據(jù)檢索,實(shí)時(shí)trace系統(tǒng)高效的解決了這個(gè)問題;

          (1)核心邏輯機(jī)器人Trace鏈路信息
          報(bào)警暴露信息在核心邏輯已基本達(dá)到了分鐘級(jí)的問題報(bào)警 + 問題的自動(dòng)定位,研發(fā)基于報(bào)警信息即可以看到對(duì)應(yīng)的問題代碼行數(shù)及出錯(cuò)原因,大大提高了問題的定位效率。

          當(dāng)然這個(gè)方式的報(bào)警目前還存在實(shí)現(xiàn)成本較高的問題,諸如在游戲業(yè)務(wù)的充值完成后給用戶發(fā)道具過程中如果存在一次,我們會(huì)暴露出請(qǐng)求參數(shù)、出錯(cuò)函數(shù)及出錯(cuò)的具體原因,研究基于這個(gè)數(shù)據(jù)可以直觀的明確具體的問題,但是這個(gè)需要較為定制化的實(shí)現(xiàn),有一定接入成本。
                                           

          (2)實(shí)時(shí)trace系統(tǒng)接入
          利用百度trace中臺(tái)的能力,可以做到業(yè)務(wù)在非侵入式的情況下進(jìn)行采集,接入成本極低。對(duì)于時(shí)效性方面采用了百度DataHub消息隊(duì)列,并利用Dstream實(shí)時(shí)建索引,使得從數(shù)據(jù)源到故障定位平臺(tái)可以基于關(guān)鍵信息的檢索時(shí)效性在5分鐘以內(nèi),大大的提高研發(fā)定位效率。
           

          四、微服務(wù)監(jiān)控全景圖

                      

          4.1用戶觸達(dá)

          通過多維度可視化監(jiān)控,輔助研發(fā)基于可視化界面即可快速分析出問題大致原因;基于智能報(bào)警和業(yè)務(wù)報(bào)表,可以滿足在時(shí)效性和業(yè)務(wù)詳細(xì)健康度的全面檢測(cè),讓研發(fā)同學(xué)全面感知系統(tǒng)的狀態(tài);

          4.2監(jiān)控工具

          基于公司提供的Argus監(jiān)控、Sia智能監(jiān)控和機(jī)器人監(jiān)控輔助工具,可以完整的對(duì)系統(tǒng)進(jìn)行全面覆蓋;對(duì)于一些長(zhǎng)周期的業(yè)務(wù)數(shù)據(jù),諸如應(yīng)用日活、下載成功率、白屏率等指標(biāo)數(shù)據(jù),則提供定制化的監(jiān)控以覆蓋此類場(chǎng)景的監(jiān)控;

          4.3監(jiān)控指標(biāo)

          對(duì)于監(jiān)控指標(biāo)大體分位如上一些分類,基于這些分類做到監(jiān)控的有效覆蓋;

          4.4監(jiān)控對(duì)象

          監(jiān)控對(duì)象從服務(wù)器、業(yè)務(wù)日志、服務(wù)狀態(tài)到業(yè)務(wù)數(shù)據(jù)、業(yè)務(wù)核心邏輯和核心場(chǎng)景,通過全面的監(jiān)控對(duì)象梳理已做到對(duì)于監(jiān)控的全面掌控。

          五、總結(jié)展望


          通過系統(tǒng)化的監(jiān)控能力建設(shè),無論是在時(shí)效性、定位效率還是覆蓋度等均達(dá)到了較為理想的狀態(tài),研發(fā)對(duì)于重大的線上問題可以第一時(shí)間感知,并有完善的輔助定位信息來協(xié)助高效定位問題,總結(jié)整體監(jiān)控的實(shí)踐過程,主要是有以下幾個(gè)方面的心得。

          (1)系統(tǒng)化設(shè)計(jì)落地
          監(jiān)控系統(tǒng)首先要明確解決的是什么問題,達(dá)到的是什么目標(biāo),將問題和目標(biāo)理解清楚后,實(shí)現(xiàn)上就以如何充分解決問題并達(dá)成目標(biāo)來思考,基于這樣一個(gè)系統(tǒng)化的分析拆解過程,我們從風(fēng)險(xiǎn)控制、智能監(jiān)控、智能報(bào)警、高效定位幾個(gè)部分入手來實(shí)現(xiàn)我們的監(jiān)控系統(tǒng),以達(dá)到預(yù)期的目標(biāo)。

          (2)分級(jí)的思考方式在監(jiān)控和報(bào)警中應(yīng)用,核心邏輯集中火力
          無論是監(jiān)控還是報(bào)警,我們都以目標(biāo)集中于重要的功能和核心邏輯,如果現(xiàn)有工具無法達(dá)到目標(biāo),那就考慮多個(gè)工具組合來滿足監(jiān)控的目標(biāo)。對(duì)于通用的邏輯功能則強(qiáng)調(diào)覆蓋程度,以現(xiàn)有工具完整覆蓋。

          (3)易于實(shí)施和落地
          公司提供的SIA智能監(jiān)控、argus監(jiān)控都有提供聚合的能力,對(duì)于同質(zhì)的內(nèi)容監(jiān)控做到一步到位。而對(duì)于異構(gòu)或差異化的服務(wù),則可以以業(yè)務(wù)方現(xiàn)有的形式以非侵入能力支持接入,大大提高了監(jiān)控的添加效率。

          (4)充分結(jié)合公司現(xiàn)有能力,創(chuàng)新組合應(yīng)用,提高效率
          在使用監(jiān)控基礎(chǔ)實(shí)施的時(shí)候,不同的監(jiān)控工具各有優(yōu)劣,充分利用不同的監(jiān)控工具的優(yōu)勢(shì)達(dá)到整體監(jiān)控效果的最優(yōu),同時(shí)對(duì)于諸如一些核心邏輯的監(jiān)控,創(chuàng)新的使用機(jī)器人報(bào)警+trace的內(nèi)容定制化能力,實(shí)現(xiàn)對(duì)于核心邏輯問題的高效反饋和定位。

          雖然在監(jiān)控系統(tǒng)方面的實(shí)踐已經(jīng)達(dá)到了較為理想的效果,但是在系統(tǒng)故障處理、容災(zāi)等能力的自動(dòng)化機(jī)制上有待進(jìn)一步完善建設(shè),且對(duì)于系統(tǒng)資源的使用并沒有做到智能化的利用,目前資源的增減仍然有賴于人工的干預(yù)。后續(xù)的優(yōu)化目標(biāo)是在故障自動(dòng)化處理、資源智能擴(kuò)縮容上達(dá)到全面的自動(dòng)化,以提供系統(tǒng)整體的可維護(hù)性和可用性。

          — 本文結(jié)束 —


          ● 漫談設(shè)計(jì)模式在 Spring 框架中的良好實(shí)踐

          ● 顛覆微服務(wù)認(rèn)知:深入思考微服務(wù)的七個(gè)主流觀點(diǎn)

          ● 人人都是 API 設(shè)計(jì)者

          ● 一文講透微服務(wù)下如何保證事務(wù)的一致性

          ● 要黑盒測(cè)試微服務(wù)內(nèi)部服務(wù)間調(diào)用,我該如何實(shí)現(xiàn)?



          關(guān)注我,回復(fù) 「加群」 加入各種主題討論群。



          對(duì)「服務(wù)端思維」有期待,請(qǐng)?jiān)谖哪c(diǎn)個(gè)在看

          喜歡這篇文章,歡迎轉(zhuǎn)發(fā)、分享朋友圈


          在看點(diǎn)這里
          瀏覽 52
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久就热精品视频在线 | 欧美黑人XXXXX性受苍井空 | 91在线成人传媒 | 日日好av | 中文字幕成人免费视频 |