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