整體大致可以分四個(gè)階段:信息采集、存儲(chǔ)、分析、監(jiān)控。采集階段:收集異常日志,先在本地做一定的處理,采取一定的方案上報(bào)到服務(wù)器。存儲(chǔ)階段:后端接收前端上報(bào)的異常日志,經(jīng)過(guò)一定處理,按照一定的存儲(chǔ)方案存儲(chǔ)。分析階段:分為機(jī)器自動(dòng)分析和人工分析。機(jī)器自動(dòng)分析,通過(guò)預(yù)設(shè)的條件和算法,對(duì)存儲(chǔ)的日志信息進(jìn)行統(tǒng)計(jì)和篩選,發(fā)現(xiàn)問(wèn)題,觸發(fā)報(bào)警。人工分析,通過(guò)提供一個(gè)可視化的數(shù)據(jù)面板,讓系統(tǒng)用戶可以看到具體的日志數(shù)據(jù),根據(jù)信息,發(fā)現(xiàn)異常問(wèn)題根源。報(bào)警階段:分為告警和預(yù)警。告警按照一定的級(jí)別自動(dòng)報(bào)警,通過(guò)設(shè)定的渠道,按照一定的觸發(fā)規(guī)則進(jìn)行。預(yù)警則在異常發(fā)生前,提前預(yù)判,給出警告。性能監(jiān)控:使用ResourceTimingAPI和PerformanceTimingAPI,可以計(jì)算許多重要的指標(biāo),比如頁(yè)面性能統(tǒng)計(jì)的起始點(diǎn)時(shí)間、首屏?xí)r間等。異常監(jiān)控:前端捕獲異常分為全局捕獲和局部捕獲。局部捕獲作為補(bǔ)充,對(duì)某些特殊情況進(jìn)行捕獲,但分散,不利于管理。所以,我會(huì)選擇全局捕獲的方式,即通過(guò)全局的接口,將捕獲代碼集中寫在一個(gè)地方。具體在實(shí)現(xiàn)項(xiàng)目中,我應(yīng)該會(huì)采用badjs-report,它重寫了進(jìn)行上報(bào)異常,無(wú)需編寫任何捕獲錯(cuò)誤的代碼。webfunny前端一體化埋點(diǎn)系統(tǒng),可按項(xiàng)目設(shè)定不同的模型看板,設(shè)定人員權(quán)限,滿足多種數(shù)據(jù)分析需求。前端監(jiān)控和靜態(tài)資源加載錯(cuò)誤監(jiān)控平臺(tái)搭建
前端異常的問(wèn)題定位出來(lái)是用戶網(wǎng)絡(luò)問(wèn)題導(dǎo)致,網(wǎng)絡(luò)環(huán)境是會(huì)影響接口的效率。前端程序員也許會(huì)說(shuō),如果網(wǎng)絡(luò)環(huán)境不好,我們只要等待足夠長(zhǎng)的時(shí)間,接口啥的總是能夠加載出來(lái)的,技術(shù)可以等、用戶是等不了的,線上用戶使用app的時(shí)候都會(huì)有個(gè)極限等待時(shí)間。也就是說(shuō)用戶等待到一定時(shí)間,就會(huì)變得不耐煩了,就會(huì)關(guān)掉你的程序流失用戶。所以,我們一定要在到達(dá)用戶極限等待時(shí)間之前,給用戶一個(gè)反饋,這就是為什么我在設(shè)計(jì)webfunny前端監(jiān)控時(shí),在這個(gè)部分給前端接口加了一個(gè)超時(shí)時(shí)間。如果網(wǎng)絡(luò)環(huán)境評(píng)估良好,而接口請(qǐng)求耗時(shí)又很長(zhǎng),這時(shí)候你就可以去找后端算賬了。前端監(jiān)控和js文件加載錯(cuò)誤監(jiān)控工具推薦前端線上的用戶操作行為十分復(fù)雜,部分問(wèn)題可能隱藏在用戶多次操作之后。
這是搭建前端監(jiān)控系統(tǒng)的第二章,主要是介紹如何統(tǒng)計(jì)js報(bào)錯(cuò),跟著webfunny前端監(jiān)控項(xiàng)目的開(kāi)發(fā)者一步步操作,你也能搭建出一個(gè)屬于自己的前端監(jiān)控系統(tǒng)。前端程序員可以移步線上:webfunny前端監(jiān)控系統(tǒng),對(duì)于前端應(yīng)用來(lái)說(shuō),Js錯(cuò)誤的發(fā)生直接影響前端應(yīng)用的質(zhì)量。對(duì)前端異常的監(jiān)控是整個(gè)前端監(jiān)控系統(tǒng)中的一個(gè)重要環(huán)節(jié)。前端異常包含很多種情況:編譯時(shí)異常(開(kāi)發(fā)階段就能排除)運(yùn)行時(shí)異常;3.加載靜態(tài)資源異常(路徑寫錯(cuò)、資源服務(wù)器異常、CDN異常、跨域)4.接口請(qǐng)求異常等。這一篇我們只介紹Js運(yùn)行時(shí)異常。
搭建前端監(jiān)控系統(tǒng)(六)之接口性能分析篇,如何監(jiān)控前端接口的性能。一、接口耗時(shí)分段分析在webfunny前端監(jiān)控系統(tǒng)上,我們的開(kāi)發(fā)者將前端接口耗時(shí)劃分為5個(gè)分段:<1秒、1-5秒、5-10秒、10-30秒、>30秒10秒是用戶可忍受等待時(shí)間的臨界值,如果一個(gè)接口超過(guò)10秒還在loading,用戶極有可能殺掉程序。所以一般情況下,大于10秒的接口都可以認(rèn)為是超時(shí)接口(特殊情況例外)。即使真的有這種情況,也應(yīng)該讓后端小伙伴把這個(gè)接口做成異步接口,在10秒內(nèi)給用戶一個(gè)反饋。為什么要把耗時(shí)分段進(jìn)行分析呢,因?yàn)榇蟛糠謺r(shí)候,前端工程師通常要關(guān)心就是10-30秒這個(gè)段位,大部分超時(shí)的接口都會(huì)在這里發(fā)生。這種超時(shí)的接口、在webfunny前端監(jiān)控上,異常的情況就會(huì)以這種鶴立雞群的柱子圖形出現(xiàn),前端就能知道接口肯定是出了問(wèn)題。每個(gè)耗時(shí)分段,每天發(fā)生的數(shù)量都一目了然,前端工程師就可以做到心中有數(shù)。如果出現(xiàn)大面積的異常接口,這個(gè)柱子會(huì)變得非常明顯。每個(gè)分段的占比也需要計(jì)算出來(lái),可以按照自定的規(guī)則發(fā)送報(bào)警信息。webfunny前端監(jiān)控系統(tǒng),一站式數(shù)據(jù)可視化展示平臺(tái),炫酷大屏,自由部署。
搭建前端監(jiān)控系統(tǒng)(四)接口請(qǐng)求異常監(jiān)控篇,如何監(jiān)控前端接口請(qǐng)求:1、如何監(jiān)控ajax請(qǐng)求當(dāng)ajaxLoadStart事件發(fā)生的時(shí)候,我們將回調(diào)方法中的事件對(duì)象全都放進(jìn)數(shù)組timeRecordArray里,當(dāng)ajaxLoadEnd發(fā)生的時(shí)候,我們就去遍歷這個(gè)數(shù)據(jù),遇到又返回結(jié)果的事件對(duì)象,說(shuō)明接口請(qǐng)求已經(jīng)完成,記錄下來(lái),并從數(shù)組中刪除該事件對(duì)象。這樣前端開(kāi)發(fā)者們就能夠逐一分析出接口請(qǐng)求的內(nèi)容了。2.如何監(jiān)控fetch請(qǐng)求通過(guò)第一種方法,已經(jīng)能夠監(jiān)控到大部分的ajax請(qǐng)求了。然而,使用fetch請(qǐng)求的人越來(lái)越多,因?yàn)閒etch的鏈?zhǔn)秸{(diào)用可以讓前端開(kāi)發(fā)者們擺脫ajax的嵌套地獄,被更多的人所青睞。webfunny前端監(jiān)控系統(tǒng)隨時(shí)連接線上用戶,無(wú)論何時(shí)何地,解決前端問(wèn)題都易如反掌!國(guó)內(nèi)好用的前端監(jiān)控和js錯(cuò)誤監(jiān)控工具
前端監(jiān)控看似簡(jiǎn)單,但想要監(jiān)控真正發(fā)揮價(jià)值,還需要從各個(gè)方面進(jìn)行不斷的優(yōu)化和打磨。前端監(jiān)控和靜態(tài)資源加載錯(cuò)誤監(jiān)控平臺(tái)搭建
前端監(jiān)控系統(tǒng)搭建第三步之購(gòu)買CA證書或者說(shuō)是HTTPS證書現(xiàn)在很多網(wǎng)站都是走HTTPS安全協(xié)議,如果我們的服務(wù)器不支持安全協(xié)議,那么日志是無(wú)法被上傳到我們的服務(wù)器上的。所以我們也需要給我們的服務(wù)器配置安全證書。有多種方式獲取證書,有不收費(fèi)的,有收費(fèi)的,我的webfunny前端監(jiān)控項(xiàng)目用的是阿里云上未收費(fèi)版本一年的。PS:https證書可能也需要折騰一些時(shí)間,需要有耐心。這樣,我們的阿里云服務(wù)器部署環(huán)境就算搭建完成了,可以開(kāi)始寫前端日志的監(jiān)控代碼了。前端監(jiān)控和靜態(tài)資源加載錯(cuò)誤監(jiān)控平臺(tái)搭建
上海觀縱科技有限公司依托可靠的品質(zhì),旗下品牌webfunny,walkingfunny,argus以高質(zhì)量的服務(wù)獲得廣大受眾的青睞。旗下webfunny,walkingfunny,argus在傳媒、廣電行業(yè)擁有一定的地位,品牌價(jià)值持續(xù)增長(zhǎng),有望成為行業(yè)中的佼佼者。隨著我們的業(yè)務(wù)不斷擴(kuò)展,從webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控等到眾多其他領(lǐng)域,已經(jīng)逐步成長(zhǎng)為一個(gè)獨(dú)特,且具有活力與創(chuàng)新的企業(yè)。公司坐落于上海市奉賢區(qū)望園南路1288弄80號(hào)1904、1909室,業(yè)務(wù)覆蓋于全國(guó)多個(gè)省市和地區(qū)。持續(xù)多年業(yè)務(wù)創(chuàng)收,進(jìn)一步為當(dāng)?shù)亟?jīng)濟(jì)、社會(huì)協(xié)調(diào)發(fā)展做出了貢獻(xiàn)。