你是如何搭建 Web 前端性能監(jiān)控系統(tǒng)的?
剛好看到一個非常不錯的開源的前端監(jiān)控系統(tǒng),分享一下!做過前端的開發(fā)的小伙伴想必經(jīng)常被線上的各種問題弄的焦頭爛額,不是出現(xiàn)適配問題,就是出現(xiàn)功能異常。雖然,公司一般也有各種監(jiān)控系統(tǒng)來幫助我們分析和發(fā)現(xiàn)問題,但是,我們每次解決問題都需要輾轉(zhuǎn)于各種監(jiān)控系統(tǒng)之間,非常麻煩!
給大家推薦一款開源好用的前端監(jiān)控系統(tǒng)!這個監(jiān)控系統(tǒng)就是專門為前端開發(fā)所打造的。通過這個前端監(jiān)控系統(tǒng),不僅可以實時監(jiān)控前端性能,還可以實時分析前端健康狀態(tài)。并且,系統(tǒng)不光支持PC前端,還支持H5前端、微信小程序、uni-app。這個項目的名字叫做webfunny_monitor。 webfunny前端監(jiān)控系統(tǒng)的功能:用戶連線,前端工程師、可以連接線上任意用戶,實時查看行為和緩存數(shù)據(jù)變化。好用的前端監(jiān)控軟件
搭建前端監(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)控的結(jié)果并不是像我們想象的那么容易理解,我們先看下ajaxLoadStart,ajaxLoadEnd的回調(diào)方法。一個頁面上會有很多個請求,當一個頁面發(fā)出多個請求的時候,ajaxLoadStart事件被監(jiān)控到,但是卻無法區(qū)分出來到底發(fā)送的是哪個請求,只返回了一個內(nèi)容超多的事件對象,而且事件對象的內(nèi)容幾乎完全一樣。當ajaxLoadEnd事件被監(jiān)控到的時候,也會返回一個內(nèi)容超多的時間對象,這個時候事件對象里包含了接口請求的所有信息。幸運的是,兩個對象是同一個引用,也就意味著,ajaxLoadStart和ajaxLoadEnd事件被捕獲的時候,他們作用的是用一個對象。那前端開發(fā)者就有辦法分析出來了。前端監(jiān)控和靜態(tài)資源加載錯誤監(jiān)控軟件webfunny埋點系統(tǒng)可快速全鏈路數(shù)據(jù)接入,打破數(shù)據(jù)孤島,多角度洞察業(yè)務(wù),實現(xiàn)數(shù)據(jù)智能決策。
搭建前端監(jiān)控系統(tǒng)(五)消息隊列處理并發(fā):1、增加日志上傳的時間間隔前端程序員應(yīng)該都知道,日志上傳的時間間隔越長,用戶在這個間隔內(nèi)離開的幾率就會越大,日志的漏傳量就會增加,然后會導(dǎo)致日志的準確度降低。因為我們的探針是安插在瀏覽器內(nèi)的,用戶隨時都有可能關(guān)掉,所以,理論上講間隔越短越好,但這并不現(xiàn)實。所以這個需要在服務(wù)器的承受能力和日志的準確率之間做個權(quán)衡。由具體情況而定2、移除探針代碼里冗余的參數(shù),縮短參數(shù)名字的長度另外一點,每臺服務(wù)器的硬盤有限,帶寬有限,如果參數(shù)名字太長,參數(shù)內(nèi)容冗余,對服務(wù)器的硬盤和帶寬都是一種極大的浪費。雖然每條日志都不起眼,但是日志起量了以后,就是會是一筆非常龐大的開銷。
現(xiàn)有的大部分監(jiān)控方案都是針對服務(wù)端的,而針對前端的監(jiān)控很少,諸如線上頁面的白屏?xí)r間是多少、靜態(tài)資源的加載情況如何、接口請求耗時好久、什么時候掛掉了、為什么掛掉,這些都不清楚。同時,在產(chǎn)品推廣過程中,經(jīng)常需要統(tǒng)計頁面的使用情況及用戶行為,從而可以從運營和產(chǎn)品的角度去了解用戶群體,進而迭代升級產(chǎn)品,使其更加貼近用戶,為業(yè)務(wù)的擴展提供更多可能性。因而,我們需要一個前端的頁面監(jiān)控系統(tǒng),持續(xù)監(jiān)控和預(yù)警頁面性能的狀況,并且在發(fā)現(xiàn)瓶頸時用于指導(dǎo)優(yōu)化工作。webfunny前端監(jiān)控專為前端開發(fā)所打造。通過前端監(jiān)控系統(tǒng),可以實時監(jiān)控前端性能,還實時分析前端健康狀態(tài)。
說到前端監(jiān)控到異常報警,絕大多數(shù)的監(jiān)控平臺都提供規(guī)則報警的能力。然而規(guī)則報警比較大的問題在于隨著業(yè)務(wù)的不斷發(fā)展,原本配置的規(guī)則將會出現(xiàn)閾值過低或過高的問題。若閾值配置過低,則會產(chǎn)生大量的誤報警,繼而引起整個監(jiān)控能力的報警疲勞。為了解決規(guī)則報警的問題,監(jiān)控平臺可以引入一些簡單的數(shù)學(xué)模型來解決時序數(shù)據(jù)的異常識別工作。以常見的高斯分布(正態(tài)分布)為例,利用3-sigma原則可以快速判斷某一時刻的報錯數(shù)是否滿足概率分布,繼而可以產(chǎn)生報警。
webfunny支持私有化部署,容器化部署,可支持千萬級PV的日活量!前端監(jiān)控和靜態(tài)資源加載錯誤監(jiān)控軟件
高效前端實踐:如何監(jiān)控性能 & 分析數(shù)據(jù)?webfunny前端監(jiān)控教你從零開始搭建。好用的前端監(jiān)控軟件
搭建前端監(jiān)控系統(tǒng)(五)消息隊列處理并發(fā),通過一個消息暴增引發(fā)的前端線上崩了的問題場景來說明:消息隊列處理并發(fā)的重要性隨著前端監(jiān)控日志搜集的內(nèi)容越來越多,終于由于公司公眾號的一波推文,導(dǎo)致了日志的瞬間流量達到歷史新高,以至于mysql無法處理如此多的連接,系統(tǒng)崩潰。當然,作為日志上傳的服務(wù)器,這個是必然會發(fā)生的情況,只是早晚的問題。既然出現(xiàn)了并發(fā)問題,那么前端工程師們就著手來處理吧。日志上傳如何緩解高并發(fā)的情況呢?我們分為三個小點來處理。好用的前端監(jiān)控軟件
上海觀縱科技有限公司致力于傳媒、廣電,是一家服務(wù)型公司。公司自成立以來,以質(zhì)量為發(fā)展,讓匠心彌散在每個細節(jié),公司旗下webfunny前端監(jiān)控,webfunny前端埋點,全鏈路應(yīng)用性能監(jiān)控,Argus-IT運維監(jiān)控深受客戶的喜愛。公司注重以質(zhì)量為中心,以服務(wù)為理念,秉持誠信為本的理念,打造傳媒、廣電良好品牌。觀縱科技憑借創(chuàng)新的產(chǎn)品、專業(yè)的服務(wù)、眾多的成功案例積累起來的聲譽和口碑,讓企業(yè)發(fā)展再上新高。