搭建前端監(jiān)控系統(tǒng)(五)消息隊(duì)列處理并發(fā),通過(guò)一個(gè)消息暴增引發(fā)的前端線上崩了的問(wèn)題場(chǎng)景來(lái)說(shuō)明:消息隊(duì)列處理并發(fā)的重要性隨著前端監(jiān)控日志搜集的內(nèi)容越來(lái)越多,終于由于公司公眾號(hào)的一波推文,導(dǎo)致了日志的瞬間流量達(dá)到歷史新高,以至于mysql無(wú)法處理如此多的連接,系統(tǒng)崩潰。當(dāng)然,作為日志上傳的服務(wù)器,這個(gè)是必然會(huì)發(fā)生的情況,只是早晚的問(wèn)題。既然出現(xiàn)了并發(fā)問(wèn)題,那么前端工程師們就著手來(lái)處理吧。日志上傳如何緩解高并發(fā)的情況呢?我們分為三個(gè)小點(diǎn)來(lái)處理。為了解決規(guī)則報(bào)警的問(wèn)題,監(jiān)控平臺(tái)可以引入一些簡(jiǎn)單的數(shù)學(xué)模型來(lái)解決時(shí)序數(shù)據(jù)的異常識(shí)別工作。國(guó)內(nèi)好用的前端監(jiān)控和前端性能監(jiān)控軟件 你知道有多少用戶沒(méi)等到頁(yè)面首屏出...
前端出現(xiàn)異常報(bào)錯(cuò)的時(shí)候,有前端幫后臺(tái)背鍋之前怎么快速優(yōu)雅的"甩鍋"?在做前端程序員的時(shí)候,我之前所在的公司后臺(tái)可是有著完善的監(jiān)控系統(tǒng),他們都覺(jué)得自己的代碼和監(jiān)控都做得非常完善,但是前端的我做了監(jiān)控結(jié)果后來(lái)看,事實(shí)并非如此。當(dāng)然,你也許會(huì)說(shuō)這是開發(fā)和測(cè)試不專業(yè),這么明顯的問(wèn)題都沒(méi)有發(fā)現(xiàn),但是,我只能用一句話來(lái)解釋:人非圣賢。與其追究是誰(shuí)的責(zé)任,不如想辦法解決問(wèn)題。將線上的損失減少到較低的影響。如果作為前端你對(duì)項(xiàng)目做了監(jiān)控,并且能實(shí)時(shí)監(jiān)控到,出現(xiàn)問(wèn)題的時(shí)候把報(bào)錯(cuò)截圖發(fā)給后臺(tái)小伙伴,你還需要跟他們爭(zhēng)論是誰(shuí)的鍋嗎?當(dāng)然,如果是前端程序員自己的鍋,那還是趕緊偷偷修改掉吧,在建立webfunny前端監(jiān)控時(shí)...
提到監(jiān)控系統(tǒng),大部分開發(fā)人員首先想到的是后端監(jiān)控。很明顯,比如檢測(cè)服務(wù)器性能,數(shù)據(jù)庫(kù)性能,API的訪問(wèn)流量,以及各種服務(wù)的運(yùn)行情況等等,都與后端息息相關(guān)。而前端更多承擔(dān)的是UI展現(xiàn)的角色,主要關(guān)注頁(yè)面怎么排版設(shè)計(jì),好像沒(méi)什么需要監(jiān)測(cè)的地方,因此一直以來(lái)都沒(méi)有涉及到監(jiān)控的概念。 于是呢大家就一致認(rèn)為:只要后端穩(wěn)定可控,應(yīng)用就是穩(wěn)定可控的,可實(shí)際情況前端監(jiān)控的重要性不亞于后端?,F(xiàn)在的前端監(jiān)控并不僅是監(jiān)控異常數(shù)據(jù),任何有利于產(chǎn)品分析的數(shù)據(jù)都可以加入監(jiān)控。所以我認(rèn)為前端監(jiān)控,就是指采集用戶使用系統(tǒng)過(guò)程中產(chǎn)生的關(guān)鍵數(shù)據(jù),存儲(chǔ)到數(shù)據(jù)庫(kù),后續(xù)可以查找和分析,這樣的整套實(shí)現(xiàn)就被稱為前端監(jiān)控系統(tǒng)。 w...
前端程序員如何明確定位、排查前端生產(chǎn)問(wèn)題?六、記錄用戶的頁(yè)面截圖即使你記錄下所有的行為,但是你依然需要看到頁(yè)面的樣子,才能夠分析出問(wèn)題所在,那么我們?cè)趙ebfunny前端監(jiān)控系統(tǒng)上,依然可以通過(guò)js截圖來(lái)看看用戶設(shè)備上的樣子。七、分析用戶的場(chǎng)外信息當(dāng)用戶所有的行為都被我們掌握之后,就能夠復(fù)現(xiàn)出用戶的行為,甚至能夠復(fù)現(xiàn)出用戶的問(wèn)題,也許還需要一些場(chǎng)外信息才能明確定位問(wèn)題,比如,用戶的機(jī)型,地理位置,系統(tǒng)版本,當(dāng)時(shí)的網(wǎng)絡(luò)環(huán)境(這個(gè)不準(zhǔn)確,我是依據(jù)用戶當(dāng)時(shí)加載頁(yè)面的時(shí)間來(lái)判斷,只能作為參考依據(jù)),前端問(wèn)題產(chǎn)生的原因五花八門,只有把日志做全了,才能夠明確的定位和解決問(wèn)題。webfunny前端監(jiān)控系統(tǒng)隨...
搭建前端監(jiān)控系統(tǒng)(三)靜態(tài)資源加載監(jiān)控篇,如何監(jiān)控前端靜態(tài)資源加載情況:解決方案:1、通過(guò)前端監(jiān)控建立,統(tǒng)計(jì)出每天報(bào)出的量,列出每天加載報(bào)錯(cuò)的變化,點(diǎn)擊圖表的bar,可以看到每天的數(shù)據(jù)變化,以作對(duì)比。2、分析出靜態(tài)資源加載出錯(cuò)主要發(fā)生在哪些頁(yè)面上,縮小排查的范圍。3、分析出影響用戶的人數(shù),也許很多錯(cuò)誤就發(fā)生在一個(gè)用戶身上,減少盲目排查。靜態(tài)資源加載監(jiān)控就完成了,這里還有一些細(xì)節(jié)需要處理,來(lái)幫助排查問(wèn)題,前端工程師在搭建靜態(tài)資源加載前端監(jiān)控的時(shí)候,可以在深入使用時(shí)來(lái)延展。為了解決規(guī)則報(bào)警的問(wèn)題,監(jiān)控平臺(tái)可以引入一些簡(jiǎn)單的數(shù)學(xué)模型來(lái)解決時(shí)序數(shù)據(jù)的異常識(shí)別工作。前端監(jiān)控和js性能監(jiān)控軟件推薦怎樣定位...
前端監(jiān)控流程:監(jiān)控錯(cuò)誤->搜集錯(cuò)誤->存儲(chǔ)錯(cuò)誤->分析錯(cuò)誤->錯(cuò)誤報(bào)警->定位錯(cuò)誤->解決錯(cuò)誤首先,我們應(yīng)該對(duì)Js報(bào)錯(cuò)情況有個(gè)大致的了解,這樣才能夠及時(shí)的了解前端項(xiàng)目的健康狀況。所以我們需要分析出一些必要的數(shù)據(jù)。如:一段時(shí)間內(nèi),應(yīng)用JS報(bào)錯(cuò)的走勢(shì)(chart圖表)、JS錯(cuò)誤發(fā)生率、JS錯(cuò)誤在PC端發(fā)生的概率、JS錯(cuò)誤在IOS端發(fā)生的概率、JS錯(cuò)誤在Android端發(fā)生的概率,以及JS錯(cuò)誤的歸類。然后,我們?cè)偃テ渲械腏s錯(cuò)誤進(jìn)行詳細(xì)的分析,輔助我們排查出錯(cuò)的位置和發(fā)生錯(cuò)誤的原因。如:JS錯(cuò)誤類型、JS錯(cuò)誤信息、JS錯(cuò)誤堆棧、JS錯(cuò)誤發(fā)生的位置以及相關(guān)位置的代碼;JS錯(cuò)誤發(fā)生的幾率、瀏覽器的類型,...
搭建前端監(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è)頁(yè)面上會(huì)有很多個(gè)請(qǐng)求,當(dāng)一個(gè)頁(yè)面發(fā)出多個(gè)請(qǐng)求的時(shí)候,ajaxLoadStart事件被監(jiān)控到,但是卻無(wú)法區(qū)分出來(lái)到底發(fā)送的是哪個(gè)請(qǐng)求,只返回了一個(gè)內(nèi)容超多的事件對(duì)象,而且事件對(duì)象的內(nèi)容幾乎完...
前端程序員如何明確定位、排查前端生產(chǎn)問(wèn)題?二、分析錯(cuò)誤詳情通過(guò)webfunny前端監(jiān)控系統(tǒng),我們可以把線上的錯(cuò)誤日志統(tǒng)計(jì)出來(lái)了,那如何解析這些錯(cuò)誤日志呢。比如:解析出用戶的機(jī)型,版本,系統(tǒng)平臺(tái),影響范圍,以及具體的錯(cuò)誤位置,從而提高前端工程師解決問(wèn)題的效率。window.onerror方法能夠利用的功能都已經(jīng)用的差不多了,但是它真的可以幫我們定位和解決所有前端線上的問(wèn)題嗎?線上能夠修復(fù)的問(wèn)題,前端工程師肯定是遇到都在盡量修復(fù),但是前端線上的問(wèn)題頻發(fā)。當(dāng)客服反饋一個(gè)問(wèn)題,你發(fā)現(xiàn)沒(méi)有測(cè)試機(jī)型,無(wú)法復(fù)現(xiàn)用戶錯(cuò)誤的時(shí)候,讓你來(lái)修復(fù)這個(gè)問(wèn)題,前端只能兩眼一抹黑無(wú)能為力。所以前端監(jiān)控的建設(shè)很有必要性。we...
如何解決前端線上問(wèn)題?如果你是一位前端工程師,那你一定不止一次去解決一些頑固的線上問(wèn)題,你也曾想方設(shè)法復(fù)現(xiàn)用戶的bug,結(jié)果可能都不太理想。怎樣定位前端線上問(wèn)題,一直以來(lái),都是很頭疼的問(wèn)題,因?yàn)樗l(fā)生于用戶的一系列操作之后。錯(cuò)誤的原因可能源于機(jī)型,網(wǎng)絡(luò)環(huán)境,復(fù)雜的操作行為等等,在我們想要去解決的時(shí)候很難復(fù)現(xiàn)出來(lái),自然也就無(wú)法解決。身為一名前端工程師,我每天都要面臨很多線上的問(wèn)題,一時(shí)間讓我焦頭爛額。雖然公司也有其他的監(jiān)控系統(tǒng),但是每次解決問(wèn)題都需要輾轉(zhuǎn)于各種監(jiān)控系統(tǒng)之間,亦是疲憊不堪。所以,一怒之下,基于自己在前端線上監(jiān)控工作時(shí)的這些痛點(diǎn),我便為自己(前端工程師)量身定做了這樣一款監(jiān)控系統(tǒng):w...
前端出現(xiàn)異常的時(shí)候,前端程序員如何快速甩鍋?特別是前端程序員發(fā)現(xiàn)前端報(bào)錯(cuò)的原因是網(wǎng)絡(luò)問(wèn)題,雖然很多時(shí)候這種報(bào)錯(cuò)問(wèn)題是由用戶的網(wǎng)絡(luò)問(wèn)題導(dǎo)致的。網(wǎng)絡(luò)是跟用戶體驗(yàn)密切相關(guān)的因素,但卻是開發(fā)小伙伴無(wú)能為力的因素,因?yàn)檫@取決于用戶當(dāng)時(shí)的網(wǎng)絡(luò)環(huán)境是否良好。如果我們能夠判斷出用戶當(dāng)時(shí)的網(wǎng)絡(luò)情況,對(duì)我們排查問(wèn)題也是很有幫助的。首先,網(wǎng)絡(luò)環(huán)境對(duì)頁(yè)面初次加載影響比較明顯。理論上講,前端是不方便把用戶當(dāng)時(shí)的網(wǎng)絡(luò)情況計(jì)算出來(lái),但是我們可以側(cè)面評(píng)估出用戶當(dāng)時(shí)的網(wǎng)絡(luò)環(huán)境。雖然我們測(cè)不出來(lái)網(wǎng)速,但是我們可以計(jì)算出用戶初次加載頁(yè)面的時(shí)間,以此來(lái)評(píng)估用戶的網(wǎng)絡(luò)環(huán)境。Webfunny專注于微信小程序、H5前端、PC前端線上應(yīng)用實(shí)...
說(shuō)到前端監(jiān)控到異常報(bào)警,絕大多數(shù)的監(jiān)控平臺(tái)都提供規(guī)則報(bào)警的能力。然而規(guī)則報(bào)警比較大的問(wèn)題在于隨著業(yè)務(wù)的不斷發(fā)展,原本配置的規(guī)則將會(huì)出現(xiàn)閾值過(guò)低或過(guò)高的問(wèn)題。若閾值配置過(guò)低,則會(huì)產(chǎn)生大量的誤報(bào)警,繼而引起整個(gè)監(jiān)控能力的報(bào)警疲勞。為了解決規(guī)則報(bào)警的問(wèn)題,監(jiān)控平臺(tái)可以引入一些簡(jiǎn)單的數(shù)學(xué)模型來(lái)解決時(shí)序數(shù)據(jù)的異常識(shí)別工作。以常見的高斯分布(正態(tài)分布)為例,利用3-sigma原則可以快速判斷某一時(shí)刻的報(bào)錯(cuò)數(shù)是否滿足概率分布,繼而可以產(chǎn)生報(bào)警。 webfunny前端監(jiān)控系統(tǒng),數(shù)據(jù)概覽功能可以:實(shí)時(shí)掌握項(xiàng)目的健康狀態(tài),PV/UV、報(bào)錯(cuò)、用戶分布等。有哪些開源的前端監(jiān)控系統(tǒng)前端異常的問(wèn)題定位出來(lái)是用...
webfunny整套前端監(jiān)控監(jiān)控系統(tǒng)的流程是比較簡(jiǎn)單的:手機(jī)端-用戶訪問(wèn)頁(yè)面會(huì)產(chǎn)生錯(cuò)誤日志、產(chǎn)生的日志會(huì)存入瀏覽器緩存,瀏覽器本地緩存會(huì)定時(shí)向Node服務(wù)推送日志信息,NodeJs日志服務(wù)會(huì)分類處理后,存入到mysql數(shù)據(jù)庫(kù)中,數(shù)據(jù)可視化系統(tǒng)會(huì)展示日志數(shù)據(jù)。webfunny前端監(jiān)控用mysql數(shù)據(jù)庫(kù)來(lái)存數(shù)據(jù)庫(kù),目前沒(méi)有遇到卡死的情況。webfunny前端監(jiān)控系統(tǒng)的數(shù)據(jù)庫(kù),采用了每日分表的模式,目前千萬(wàn)級(jí)別的日志量是沒(méi)有問(wèn)題的哦,請(qǐng)放心使用吧。Webfunny前端監(jiān)控系統(tǒng)支持的項(xiàng)目有H5前端、PC前端、微信小程序、uni-APP。webfunny前端一體化埋點(diǎn),可支持多種數(shù)據(jù)分析模型,靈活組合多...
你是如何搭建 Web 前端性能監(jiān)控系統(tǒng)的? 剛好看到一個(gè)非常不錯(cuò)的開源的前端監(jiān)控系統(tǒng),分享一下!做過(guò)前端的開發(fā)的小伙伴想必經(jīng)常被線上的各種問(wèn)題弄的焦頭爛額,不是出現(xiàn)適配問(wèn)題,就是出現(xiàn)功能異常。雖然,公司一般也有各種監(jiān)控系統(tǒng)來(lái)幫助我們分析和發(fā)現(xiàn)問(wèn)題,但是,我們每次解決問(wèn)題都需要輾轉(zhuǎn)于各種監(jiān)控系統(tǒng)之間,非常麻煩! 給大家推薦一款開源好用的前端監(jiān)控系統(tǒng)!這個(gè)監(jiān)控系統(tǒng)就是專門為前端開發(fā)所打造的。通過(guò)這個(gè)前端監(jiān)控系統(tǒng),不僅可以實(shí)時(shí)監(jiān)控前端性能,還可以實(shí)時(shí)分析前端健康狀態(tài)。并且,系統(tǒng)不光支持PC前端,還支持H5前端、微信小程序、uni-app。這個(gè)項(xiàng)目的名字叫做webfunny_monit...
搭建前端監(jiān)控系統(tǒng)(三)靜態(tài)資源加載監(jiān)控篇前端監(jiān)控除了如何做JS錯(cuò)誤監(jiān)控,還有一種錯(cuò)誤是靜態(tài)資源加載報(bào)錯(cuò),很多時(shí)候資源加載報(bào)錯(cuò)對(duì)前端項(xiàng)目來(lái)說(shuō)是致命的,因?yàn)殪o態(tài)資源加載出錯(cuò)了,有可能就會(huì)導(dǎo)致前端頁(yè)面無(wú)法渲染,用戶就只能對(duì)著一個(gè)空白屏幕發(fā)呆,不知所措。因?yàn)橥蝗挥刑?,我們的前端線上環(huán)境爆出了大量的白屏錯(cuò)誤,經(jīng)過(guò)很長(zhǎng)時(shí)間的排查,終于定位到問(wèn)題原因:我們使用的CDN路徑不知道怎么的,把我們的https協(xié)議全部指向了http協(xié)議,在安全協(xié)議下無(wú)法訪問(wèn)非安全協(xié)議的資源,導(dǎo)致了大量的白屏。所以我決定增加靜態(tài)資源監(jiān)控功能,以應(yīng)對(duì)未來(lái)的未知情況。webfunny前端監(jiān)控系統(tǒng)的功能:用戶連線,前端工程師、可以連接線上...
前端監(jiān)控通常情況下監(jiān)控的內(nèi)容可以分為三類:第二,用戶行為。用戶行為大體上可以理解為,誰(shuí),在什么時(shí)間,做了哪些操作。比如,用戶,登錄了什么應(yīng)用,應(yīng)用的版本是什么,應(yīng)用所在的平臺(tái)信息,頁(yè)面的訪問(wèn)情況,停留時(shí)長(zhǎng)等。第三,應(yīng)用的性能。應(yīng)用的性能指的是,比如頁(yè)面加載時(shí)長(zhǎng),接口請(qǐng)求時(shí)長(zhǎng),資源大小等等。 以哪種方式進(jìn)行監(jiān)控監(jiān)控方式,其實(shí)指的就是我們平常說(shuō)的埋點(diǎn)方式。通常情況分為自動(dòng)埋點(diǎn),和手動(dòng)埋點(diǎn)。 自動(dòng)埋點(diǎn)的實(shí)現(xiàn)方式稍微復(fù)雜一些,需要我們?nèi)ack很多內(nèi)容。比如需要重寫XHR對(duì)象,或者以一種更優(yōu)雅的方式實(shí)現(xiàn)fetch等。而手動(dòng)埋點(diǎn)則是我們直接在業(yè)務(wù)代碼中需要監(jiān)控的地方,直接調(diào)用接口上報(bào)所需...
webfunny前端監(jiān)控系統(tǒng)—純私有化部署,可實(shí)現(xiàn)的功能介紹:前端監(jiān)控功能一、PV/UV維度分析:1.pv/uv維度分析:主要包括了用戶量、新用戶量、IP數(shù)量、7天留存變化。2.使用體驗(yàn)維度:?jiǎn)蝹€(gè)用戶訪問(wèn)頁(yè)面頻次、卸載重裝APP頻次。3.健康狀況維度:主要包括Js報(bào)錯(cuò)趨勢(shì)、自定義異常發(fā)生趨勢(shì)、靜態(tài)資源加載報(bào)錯(cuò)趨勢(shì)、接口請(qǐng)求報(bào)錯(cuò)報(bào)錯(cuò)趨勢(shì)。4.健康評(píng)分:作為前端工程師在設(shè)計(jì)webfunny前端項(xiàng)目時(shí),我增加了給每個(gè)錯(cuò)誤的加了不同的權(quán)重,通過(guò)報(bào)錯(cuò)率給每個(gè)應(yīng)用打分。webfunny前端一體化埋點(diǎn)可實(shí)現(xiàn)漏斗分析,支持業(yè)務(wù)做更深度數(shù)據(jù)分析。有哪些前端監(jiān)控和前端異常監(jiān)控工具搭建前端監(jiān)控系統(tǒng)(六)之接口性能分...
前端程序員如何明確定位、排查前端生產(chǎn)問(wèn)題?六、記錄用戶的頁(yè)面截圖即使你記錄下所有的行為,但是你依然需要看到頁(yè)面的樣子,才能夠分析出問(wèn)題所在,那么我們?cè)趙ebfunny前端監(jiān)控系統(tǒng)上,依然可以通過(guò)js截圖來(lái)看看用戶設(shè)備上的樣子。七、分析用戶的場(chǎng)外信息當(dāng)用戶所有的行為都被我們掌握之后,就能夠復(fù)現(xiàn)出用戶的行為,甚至能夠復(fù)現(xiàn)出用戶的問(wèn)題,也許還需要一些場(chǎng)外信息才能明確定位問(wèn)題,比如,用戶的機(jī)型,地理位置,系統(tǒng)版本,當(dāng)時(shí)的網(wǎng)絡(luò)環(huán)境(這個(gè)不準(zhǔn)確,我是依據(jù)用戶當(dāng)時(shí)加載頁(yè)面的時(shí)間來(lái)判斷,只能作為參考依據(jù)),前端問(wèn)題產(chǎn)生的原因五花八門,只有把日志做全了,才能夠明確的定位和解決問(wèn)題。webfunny埋點(diǎn)系統(tǒng)具備靈...
整體大致可以分四個(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)控:使用ResourceTim...
搭建前端監(jiān)控系統(tǒng)(四)接口請(qǐng)求異常監(jiān)控篇前端接口請(qǐng)求異常監(jiān)控的必要性:1.前端工程師需要監(jiān)控接口報(bào)錯(cuò)的情況,及時(shí)定位線上問(wèn)題產(chǎn)生的原因。2.前端工程師需要分析接口的性能,以輔助前端工程師自己隨時(shí)應(yīng)對(duì)前端應(yīng)用的優(yōu)化。如何監(jiān)控前端接口請(qǐng)求:一般前端請(qǐng)求都是用jquery的ajax請(qǐng)求,也有用fetch請(qǐng)求的,以及前端框架自己封裝的請(qǐng)求等等??傊麄兎庋b的方法各不相同,但是萬(wàn)變不離其宗,他們都是對(duì)瀏覽器的這個(gè)對(duì)象window.XMLHttpRequest進(jìn)行了封裝,所以我們只要能夠監(jiān)控排查到這個(gè)對(duì)象的一些事件,就能夠把請(qǐng)求的信息分離出來(lái)。webfunny前端一體化埋點(diǎn)系統(tǒng) ,純私有化部。前端監(jiān)控和c...
目前市面上有不少前端監(jiān)控系統(tǒng),主要給大家推薦github4.2Kstar的開源監(jiān)控系統(tǒng)——Webfunny前端監(jiān)控系統(tǒng),webfunny監(jiān)控的主要特點(diǎn):1、輕量級(jí):可以隨時(shí)部署在任何地方,支持ESC部署和Docker部署,非??旖莘奖悖?、功能完善:不限制應(yīng)用的流量、自定義日志存儲(chǔ)時(shí)間,能夠適應(yīng)更多高并發(fā)的場(chǎng)景;3、針對(duì)性強(qiáng):針對(duì)前端使用場(chǎng)景研發(fā),輔助前端開發(fā),容易上手;4、無(wú)風(fēng)險(xiǎn):所有監(jiān)控?cái)?shù)據(jù)都可以回流,監(jiān)控日志都存儲(chǔ)在你們自己的數(shù)據(jù)庫(kù)內(nèi),不依賴任何第三方;5、費(fèi)用低:只需要花費(fèi)少量的贊助,便可以使用一套完整的私有化部署系統(tǒng);6、提供一對(duì)一定制化服務(wù)。webfunny前端監(jiān)控系統(tǒng)JS常見錯(cuò)誤...
很多前端程序員都很難接觸到實(shí)踐前端埋點(diǎn)與監(jiān)控。當(dāng)然,就算有機(jī)會(huì)接觸到前端監(jiān)控的前端,一旦遇到相關(guān)問(wèn)題也十分令人痛苦了。用戶在實(shí)際場(chǎng)景重的一系列操作,外加一些類似機(jī)型、網(wǎng)絡(luò)環(huán)境的問(wèn)題,讓前端很難在開發(fā)環(huán)境中復(fù)現(xiàn)出來(lái)。特別是前端在沒(méi)有監(jiān)控加持的情況下,需要人為手動(dòng)解決問(wèn)題,還要應(yīng)對(duì)產(chǎn)品的需求轟炸,真是太難了。作為webfunny前端監(jiān)控系統(tǒng)的開發(fā)者,我們深知做好任何一個(gè)產(chǎn)品都不會(huì)那么容易,特別是前端監(jiān)控這種技術(shù)型產(chǎn)品,webfunny前端監(jiān)控系統(tǒng)還有很多需要改進(jìn)和提升的地方,而webfunny前端監(jiān)控一直在不斷的迭代產(chǎn)品。如果你是前端工程師,對(duì)監(jiān)控有興趣,可以來(lái)webfunny官網(wǎng)試用demo,只...
前端程序員如何明確定位、排查前端生產(chǎn)問(wèn)題?一、統(tǒng)計(jì)前端錯(cuò)誤(Demo)眾所周知,前端工程師常用的統(tǒng)計(jì)前端的錯(cuò)誤辦法,那就是大名鼎鼎的window.onerror方法,window.onerror方法中參數(shù)的意義我就不一一介紹了,相信前端小伙伴也已經(jīng)耳熟能詳??傊軌?yàn)槲覀冇涗浵戮€上的很多錯(cuò)誤,以及一些額外的信息。我將window.onerror(捕獲異常),console.error(自定義異常)方法收集到的錯(cuò)誤信息進(jìn)行分析統(tǒng)計(jì)后的結(jié)果如下:通過(guò)webfunny前端監(jiān)控系統(tǒng),我統(tǒng)計(jì)出了每天的錯(cuò)誤量,每個(gè)小時(shí)的錯(cuò)誤量,每天的錯(cuò)誤量變化,來(lái)鑒定線上環(huán)境是否健康。按照J(rèn)S錯(cuò)誤數(shù)量進(jìn)行分類排序,按照...
搭建前端監(jiān)控系統(tǒng)(六)之接口性能分析篇,如何監(jiān)控前端接口的性能。二、單個(gè)接口分析很多時(shí)候,前端出現(xiàn)接口問(wèn)題的肯定某一個(gè)接口出現(xiàn)異常,如果是大面積異常,前端同學(xué)的電話肯定被老板打爆了,也不需要監(jiān)控了。那么針對(duì)單個(gè)接口我們應(yīng)該分析哪些指標(biāo)呢?超時(shí)接口數(shù)量、單個(gè)接口的平均耗時(shí)、影響用戶數(shù)量、發(fā)生頁(yè)面?zhèn)€數(shù)、可以準(zhǔn)確定位到某個(gè)小時(shí)和某一分鐘發(fā)生的情況。三、分析報(bào)警分析報(bào)警可以分為多個(gè)指標(biāo):超時(shí)接口數(shù)量、超時(shí)接口占比(百分比),影響用戶數(shù)量。隨著工作的不斷深入,前端工程師應(yīng)該走出舒適圈,關(guān)注更多維度的指標(biāo),不能再局限在狹義的前端后端了。webfunny前端監(jiān)控系統(tǒng)通過(guò)探針實(shí)現(xiàn)用戶細(xì)查。 支持使用多種檢索條...
做過(guò)前端的開發(fā)的小伙伴想必經(jīng)常被線上的各種問(wèn)題弄的焦頭爛額,不是出現(xiàn)適配問(wèn)題,就是出現(xiàn)功能異常。 雖然,公司一般也有各種監(jiān)控系統(tǒng)來(lái)幫助我們分析和發(fā)現(xiàn)問(wèn)題,但是,我們每次解決問(wèn)題都需要輾轉(zhuǎn)于各種監(jiān)控系統(tǒng)之間,非常麻煩! 下面就給大家推薦一款開源好用的前端監(jiān)控系統(tǒng)!這個(gè)監(jiān)控系統(tǒng)就是專門為前端開發(fā)所打造的。通過(guò)這個(gè)前端監(jiān)控系統(tǒng),不僅可以實(shí)時(shí)監(jiān)控前端性能,還可以實(shí)時(shí)分析前端健康狀態(tài)。并且,系統(tǒng)不光支持PC前端,還支持H5前端、微信小程序、uni-app。 這個(gè)項(xiàng)目的名字叫做webfunny_monitor,目前在Github上收獲了4.6k+的star。 絕大多數(shù)的監(jiān)控平臺(tái)都提供...
搭建前端監(jiān)控系統(tǒng)(三)靜態(tài)資源加載監(jiān)控篇如何監(jiān)控前端靜態(tài)資源加載情況:前端開發(fā)者可以根據(jù)報(bào)錯(cuò)是的,還是script標(biāo)簽。由于目前暫時(shí)關(guān)注對(duì)前端造成崩潰的錯(cuò)誤,所以目前只監(jiān)控了css,js文件加載錯(cuò)誤的情況。首先,前端工程師要做的實(shí)時(shí)監(jiān)控和預(yù)警,依然關(guān)聯(lián)了7天以前同一時(shí)間端的數(shù)據(jù),如果某個(gè)時(shí)間段出現(xiàn)錯(cuò)誤量暴增,可以發(fā)出警告,及時(shí)制止。然后,前端開發(fā)者還需要知道更多詳細(xì)的信息,如資源加載報(bào)錯(cuò)、資源失敗列表等等,雖然前端線上環(huán)境并沒(méi)有給前端開發(fā)者報(bào)出這么多的問(wèn)題,但是可以看到,每天還是有很多的靜態(tài)資源加載報(bào)錯(cuò),有些是很重要的靜態(tài)資源文件,是必然會(huì)導(dǎo)致頁(yè)面渲染失敗的,所以必須要解決建立合理的前端監(jiān)控機(jī)...
webfunny整套前端監(jiān)控監(jiān)控系統(tǒng)的流程是比較簡(jiǎn)單的:手機(jī)端-用戶訪問(wèn)頁(yè)面會(huì)產(chǎn)生錯(cuò)誤日志、產(chǎn)生的日志會(huì)存入瀏覽器緩存,瀏覽器本地緩存會(huì)定時(shí)向Node服務(wù)推送日志信息,NodeJs日志服務(wù)會(huì)分類處理后,存入到mysql數(shù)據(jù)庫(kù)中,數(shù)據(jù)可視化系統(tǒng)會(huì)展示日志數(shù)據(jù)。webfunny前端監(jiān)控用mysql數(shù)據(jù)庫(kù)來(lái)存數(shù)據(jù)庫(kù),目前沒(méi)有遇到卡死的情況。webfunny前端監(jiān)控系統(tǒng)的數(shù)據(jù)庫(kù),采用了每日分表的模式,目前千萬(wàn)級(jí)別的日志量是沒(méi)有問(wèn)題的哦,請(qǐng)放心使用吧。Webfunny前端監(jiān)控系統(tǒng)支持的項(xiàng)目有H5前端、PC前端、微信小程序、uni-APP。webfunny前端監(jiān)控系統(tǒng),自定義埋點(diǎn)功能,更加靈活的自定義埋點(diǎn)...
前端工程師們都知道,前端的線上問(wèn)題很難定位,因?yàn)樗l(fā)生于用戶的一系列操作之后。前端線上問(wèn)題錯(cuò)誤的原因可能源于機(jī)型、網(wǎng)絡(luò)環(huán)境、接口請(qǐng)求、復(fù)雜的操作行為等等,在我們想要去解決的時(shí)候很難復(fù)現(xiàn)出來(lái),自然也就無(wú)法解決。當(dāng)你開發(fā)的項(xiàng)目在線上運(yùn)行的時(shí)候,你能否知道它是否在健康的運(yùn)行呢?當(dāng)你的js出現(xiàn)大量報(bào)錯(cuò),你能及時(shí)的知道,并快速的修復(fù)嗎?當(dāng)你的接口出現(xiàn)大量的錯(cuò)誤導(dǎo)致線上錯(cuò)誤,你能快速發(fā)現(xiàn)并及時(shí)甩鍋給后端的小伙伴嗎?當(dāng)你的CDN嗝屁了,你能知道是第三方的問(wèn)題,而不是滿頭大汗排查你的代碼嗎?當(dāng)你線上的用戶在app上做了一大堆奇葩的操作,搞成了一個(gè)莫名的Bug,你有信心將它復(fù)現(xiàn)嗎?身為一名前端開發(fā)者,webfu...
在同樣的網(wǎng)絡(luò)環(huán)境下,有兩個(gè)同樣能滿足你的需求的網(wǎng)站,一個(gè)唰的一下就加載出來(lái)了,另一個(gè)白屏轉(zhuǎn)圈轉(zhuǎn)了半天內(nèi)容才出來(lái),如果讓你選擇,你會(huì)用哪一個(gè)? 通常情況下我們不會(huì)遇到前端性能監(jiān)控的需求,但是當(dāng)我們的關(guān)鍵項(xiàng)目真的有這個(gè)需求的時(shí)候應(yīng)該怎么做呢?我們通常會(huì)接入第三方的監(jiān)控API,但是如何實(shí)現(xiàn)這種監(jiān)控,也是我們需要思考的問(wèn)題,只有從全局出發(fā),思考前端監(jiān)控的實(shí)現(xiàn)方案,我們才能從這個(gè)思考的過(guò)程中有所收獲。 頁(yè)面的性能問(wèn)題是前端開發(fā)中一個(gè)重要環(huán)節(jié),但一直以來(lái)我們沒(méi)有比較好的手段,來(lái)檢測(cè)頁(yè)面的性能。直到W3C性能小組引入的新的API window.performance,目前IE9以上的瀏覽器都...
現(xiàn)有的大部分監(jiān)控方案都是針對(duì)服務(wù)端的,而針對(duì)前端的監(jiān)控很少,諸如線上頁(yè)面的白屏?xí)r間是多少、靜態(tài)資源的加載情況如何、接口請(qǐng)求耗時(shí)好久、什么時(shí)候掛掉了、為什么掛掉,這些都不清楚。同時(shí),在產(chǎn)品推廣過(guò)程中,經(jīng)常需要統(tǒng)計(jì)頁(yè)面的使用情況及用戶行為,從而可以從運(yùn)營(yíng)和產(chǎn)品的角度去了解用戶群體,進(jìn)而迭代升級(jí)產(chǎn)品,使其更加貼近用戶,為業(yè)務(wù)的擴(kuò)展提供更多可能性。因而,我們需要一個(gè)前端的頁(yè)面監(jiān)控系統(tǒng),持續(xù)監(jiān)控和預(yù)警頁(yè)面性能的狀況,并且在發(fā)現(xiàn)瓶頸時(shí)用于指導(dǎo)優(yōu)化工作。webfunny前端監(jiān)控系統(tǒng),數(shù)據(jù)概覽功能可以:實(shí)時(shí)掌握項(xiàng)目的健康狀態(tài),PV/UV、報(bào)錯(cuò)、用戶分布等。好用的前端監(jiān)控和前端異常監(jiān)控方案 一、為什么要做前端...
搭建前端監(jiān)控系統(tǒng)(七)之用戶細(xì)查篇:用戶細(xì)查具體要分析哪些數(shù)據(jù),更容易幫助我們定位前端問(wèn)題呢說(shuō)完用戶基本信息和頁(yè)面平均加載時(shí)間,下面就要來(lái)說(shuō)接口耗時(shí)正態(tài)分布。接口耗時(shí)同樣能夠反饋出用戶當(dāng)時(shí)的網(wǎng)絡(luò)狀態(tài),同時(shí)他也能反饋出服務(wù)端接口的狀態(tài)。比如,頁(yè)面平均耗時(shí)表現(xiàn)良好,接口耗時(shí)表現(xiàn)差,則能反映出,當(dāng)時(shí)的后端服務(wù)狀態(tài)不是很好。還有完整的用戶行為記錄,以上是用戶行為中的基本信息,接下來(lái)要說(shuō)的是用戶的完整行為鏈路,通過(guò)將頁(yè)面訪問(wèn)、接口請(qǐng)求、代碼報(bào)錯(cuò)、自定義行為等,按照時(shí)間先后順序串聯(lián)起來(lái),可以達(dá)到復(fù)現(xiàn)用戶錯(cuò)誤的目的。其中,接口請(qǐng)求記錄,除了會(huì)記錄接口耗時(shí),還需要記錄接口的返回值,這樣能夠更加明確的定位數(shù)據(jù)問(wèn)...