搭建前端監(jiān)控系統(tǒng)(四)接口請求異常監(jiān)控篇如何監(jiān)控前端接口請求:1、如何監(jiān)控ajax請求如果作為前端開發(fā)者你用的jquery、zepto、或者自己封裝的ajax方法,就可以用如下的方法進行監(jiān)控排查。前端開發(fā)者在監(jiān)控XMLHttpRequest對象的兩個事件loadstart,loadend。但是監(jiān)控的結果并不是像我們想象的那么容易理解,我們先看下ajaxLoadStart,ajaxLoadEnd的回調方法。一個頁面上會有很多個請求,當一個頁面發(fā)出多個請求的時候,ajaxLoadStart事件被監(jiān)控到,但是卻無法區(qū)分出來到底發(fā)送的是哪個請求,只返回了一個內(nèi)容超多的事件對象,而且事件對象的內(nèi)容幾乎完全一樣。當ajaxLoadEnd事件被監(jiān)控到的時候,也會返回一個內(nèi)容超多的時間對象,這個時候事件對象里包含了接口請求的所有信息。幸運的是,兩個對象是同一個引用,也就意味著,ajaxLoadStart和ajaxLoadEnd事件被捕獲的時候,他們作用的是用一個對象。那前端開發(fā)者就有辦法分析出來了。webfunny前端監(jiān)控系統(tǒng)支持PC前端、H5項目??孔V的前端監(jiān)控和js錯誤監(jiān)控系統(tǒng)
前端出現(xiàn)異常的時候,前端程序員如何快速甩鍋?這就需要定位到前端異常的問題,才能有針對性的去甩鍋。常見的前端異常一、白屏想必是前端小伙伴的噩夢,因為頁面白屏了,對前端小伙伴來說,是屬于嚴重的bug了,因為業(yè)務因此癱瘓了,哪怕不是前端程序員的鍋,也背定了。為了避免一臉懵逼,什么有用的信息都沒有,解決起來無從著手的情況發(fā)生,我們要知道導致白屏的原因有哪些呢?基本上導致白屏的原因是你的JS報錯了,運行時拋出異常,靜態(tài)資源加載失敗,如:js、css文件加載失敗,也會導致白屏。以上兩點是導致前端白屏的主要原因,當然還有什么機子兼容性不好太卡,網(wǎng)絡異常什么的,那都小概率事件,屬于前端監(jiān)控的另一個維度了,webfunny前端監(jiān)控工具這些維度都有覆蓋。國內(nèi)好用的前端監(jiān)控和前端行為分析軟件意識到前端監(jiān)控的必要性,選對前端監(jiān)控產(chǎn)品如webfunny,及早開始進行監(jiān)控,才能更好的避免線上故障的產(chǎn)生。
webfunny整套前端監(jiān)控監(jiān)控系統(tǒng)的流程是比較簡單的:手機端-用戶訪問頁面會產(chǎn)生錯誤日志、產(chǎn)生的日志會存入瀏覽器緩存,瀏覽器本地緩存會定時向Node服務推送日志信息,NodeJs日志服務會分類處理后,存入到mysql數(shù)據(jù)庫中,數(shù)據(jù)可視化系統(tǒng)會展示日志數(shù)據(jù)。因為整套前端監(jiān)控流程比較簡單,有些前端工程師可能會有疑問,比如:監(jiān)控這么多東西,會不會影響頁面的性能???前端監(jiān)控居然用node做日志服務,并發(fā)量高了能扛得住嗎?前端監(jiān)控用mysql數(shù)據(jù)庫來存數(shù)據(jù)庫,不怕卡死嗎?等一些關于webfunny前端監(jiān)控系統(tǒng)的各種問題。
搭建前端監(jiān)控系統(tǒng)(七)之用戶細查篇:用戶細查具體要分析哪些數(shù)據(jù),更容易幫助我們定位前端問題呢說完用戶基本信息和頁面平均加載時間,下面就要來說接口耗時正態(tài)分布。接口耗時同樣能夠反饋出用戶當時的網(wǎng)絡狀態(tài),同時他也能反饋出服務端接口的狀態(tài)。比如,頁面平均耗時表現(xiàn)良好,接口耗時表現(xiàn)差,則能反映出,當時的后端服務狀態(tài)不是很好。還有完整的用戶行為記錄,以上是用戶行為中的基本信息,接下來要說的是用戶的完整行為鏈路,通過將頁面訪問、接口請求、代碼報錯、自定義行為等,按照時間先后順序串聯(lián)起來,可以達到復現(xiàn)用戶錯誤的目的。其中,接口請求記錄,除了會記錄接口耗時,還需要記錄接口的返回值,這樣能夠更加明確的定位數(shù)據(jù)問題。以上說到的關于「用戶細查」的詳細功能和信息展示,前端程序員可以可以通過webfunny前端監(jiān)控系統(tǒng)進行demo實操查看。在搭建前端系統(tǒng)利用各種手段來豐富「用戶細查」,將用戶的行為記錄下來,復現(xiàn)用戶當時的問題便不再是那么困難的事情。這對開發(fā)者來說,無疑是提高了解決問題的效率。webfunny前端監(jiān)控致力于解決前端監(jiān)控的問題,提高前端的性能。webfunny前端監(jiān)控系統(tǒng)的功能:性能分析過程中也同步對接口的性能進行分析,如:耗時、成功率等。
整體大致可以分四個階段:信息采集、存儲、分析、監(jiān)控。采集階段:收集異常日志,先在本地做一定的處理,采取一定的方案上報到服務器。存儲階段:后端接收前端上報的異常日志,經(jīng)過一定處理,按照一定的存儲方案存儲。分析階段:分為機器自動分析和人工分析。機器自動分析,通過預設的條件和算法,對存儲的日志信息進行統(tǒng)計和篩選,發(fā)現(xiàn)問題,觸發(fā)報警。人工分析,通過提供一個可視化的數(shù)據(jù)面板,讓系統(tǒng)用戶可以看到具體的日志數(shù)據(jù),根據(jù)信息,發(fā)現(xiàn)異常問題根源。報警階段:分為告警和預警。告警按照一定的級別自動報警,通過設定的渠道,按照一定的觸發(fā)規(guī)則進行。預警則在異常發(fā)生前,提前預判,給出警告。性能監(jiān)控:使用ResourceTimingAPI和PerformanceTimingAPI,可以計算許多重要的指標,比如頁面性能統(tǒng)計的起始點時間、首屏時間等。異常監(jiān)控:前端捕獲異常分為全局捕獲和局部捕獲。局部捕獲作為補充,對某些特殊情況進行捕獲,但分散,不利于管理。所以,我會選擇全局捕獲的方式,即通過全局的接口,將捕獲代碼集中寫在一個地方。具體在實現(xiàn)項目中,我應該會采用badjs-report,它重寫了進行上報異常,無需編寫任何捕獲錯誤的代碼。前端監(jiān)控看似簡單,但想要監(jiān)控真正發(fā)揮價值,還需要從各個方面進行不斷的優(yōu)化和打磨。常見的前端監(jiān)控和css文件加載錯誤監(jiān)控平臺
webfunny前端一體化埋點系統(tǒng) ,純私有化部。靠譜的前端監(jiān)控和js錯誤監(jiān)控系統(tǒng)
前端錯誤監(jiān)控軟件是一種工具,可幫助企業(yè)監(jiān)控其前端系統(tǒng)的性能和正常運行時間,如web服務器和其他在線存在的基本元素。這些工具幫助企業(yè)掌握可能影響客戶體驗或網(wǎng)站性能的問題,使他們能夠快速有效地識別和解決問題,以免造成任何重大中斷。前端錯誤監(jiān)控軟件的一些關鍵功能包括實時分析、自動警報系統(tǒng)、詳細報告功能以及對各種前端平臺的支持,如web服務器、cdn、數(shù)據(jù)庫等。此外,前端錯誤監(jiān)控軟件通常是可定制的,允許企業(yè)定制他們的解決方案,以滿足他們的特定需求和工作流程??孔V的前端監(jiān)控和js錯誤監(jiān)控系統(tǒng)
上海觀縱科技有限公司是我國webfunny前端監(jiān)控,webfunny前端埋點,全鏈路應用性能監(jiān)控,Argus-IT運維監(jiān)控專業(yè)化較早的有限責任公司之一,公司始建于2022-11-14,在全國各個地區(qū)建立了良好的商貿(mào)渠道和技術協(xié)作關系。觀縱科技致力于構建傳媒、廣電自主創(chuàng)新的競爭力,將憑借高精尖的系列產(chǎn)品與解決方案,加速推進全國傳媒、廣電產(chǎn)品競爭力的發(fā)展。