前端大體上將監(jiān)控分為3種、用戶行為監(jiān)控、異常監(jiān)控、性能監(jiān)控,前端且存在多端,每個(gè)端的每個(gè)監(jiān)控方式又不太一樣,很難做到sdk一套多用。所以基本都采用多端不同的sdk。不同公司也是根據(jù)各自需要建設(shè)對(duì)應(yīng)的監(jiān)控體系。前端異常監(jiān)控:排查問題更簡(jiǎn)單、更及時(shí),發(fā)現(xiàn)問題的由用戶主動(dòng)反饋轉(zhuǎn)變?yōu)殚_發(fā)主動(dòng)發(fā)現(xiàn)問題。 前端埋點(diǎn)平臺(tái)(用戶行為監(jiān)控):產(chǎn)品運(yùn)營(yíng)根據(jù)數(shù)據(jù)做分析,不斷優(yōu)化產(chǎn)品應(yīng)用。 性能監(jiān)控:監(jiān)控網(wǎng)站的性能,了解用戶訪問的過程中的體驗(yàn)感,可進(jìn)行針對(duì)性的優(yōu)化。 webfunny前端一體化埋點(diǎn)支持自定義SDK創(chuàng)建,數(shù)據(jù)獲取更準(zhǔn)確。穩(wěn)定的前端監(jiān)控和前端異常監(jiān)控工具搭建前端監(jiān)控系統(tǒng)(三)靜態(tài)資源加載監(jiān)...
搭建前端監(jiān)控系統(tǒng)(六)之接口性能分析篇這是搭建前端監(jiān)控系統(tǒng)的第七章,主要是介紹如何監(jiān)控前端接口的性能??赡芮岸斯こ處煏?huì)奇怪,接口的性能一直都是由后端的小伙伴來監(jiān)測(cè)的,關(guān)前端鳥事啊。但其實(shí)隨著前端業(yè)務(wù)日益復(fù)雜,前端開始承受著前所未有的重要職責(zé)。因?yàn)榍岸藰I(yè)務(wù)變得復(fù)雜,所以前端工程師必須開始讓前后端分離,前端、后端小伙伴各司其職,同時(shí)也帶來了大量的異步接口請(qǐng)求。所以,原本由后端小伙伴監(jiān)控接口的一部分職責(zé),便落到了我們前端小伙伴的肩膀上了。那么如何有效的進(jìn)行接口性能的監(jiān)控,通過webfunny前端監(jiān)控、只需要簡(jiǎn)單幾步就可以搭建一套屬于自己的前端監(jiān)控系統(tǒng)。webfunny一體化埋點(diǎn)系統(tǒng):數(shù)據(jù)“采集+管理...
在同樣的網(wǎng)絡(luò)環(huán)境下,有兩個(gè)同樣能滿足你的需求的網(wǎng)站,一個(gè)唰的一下就加載出來了,另一個(gè)白屏轉(zhuǎn)圈轉(zhuǎn)了半天內(nè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)控,也是我們需要思考的問題,只有從全局出發(fā),思考前端監(jiān)控的實(shí)現(xiàn)方案,我們才能從這個(gè)思考的過程中有所收獲。 頁面的性能問題是前端開發(fā)中一個(gè)重要環(huán)節(jié),但一直以來我們沒有比較好的手段,來檢測(cè)頁面的性能。直到W3C性能小組引入的新的API window.performance,目前IE9以上的瀏覽器都...
App監(jiān)測(cè)內(nèi)容共分三個(gè)大項(xiàng)(用戶體驗(yàn)、網(wǎng)站性能、網(wǎng)絡(luò)性能)及八個(gè)二級(jí)指標(biāo)(整體性能、首屏完全渲染用時(shí)、可用性、整體速度、100K耗時(shí)、總下載字節(jié)數(shù)、時(shí)延平均值、丟包率),各個(gè)二級(jí)指標(biāo)具體釋義如下:整體性能:從頁面開始瀏覽到元素的一包數(shù)據(jù)接收完成之間的時(shí)間間隔。單位:秒;首屏完全渲染用時(shí):頁面指定范圍內(nèi)所有元素被渲染完畢的時(shí)間。單位:秒;可用性:執(zhí)行監(jiān)測(cè)任務(wù)的客戶端對(duì)目標(biāo)訪問的成功率??捎眯?有效監(jiān)測(cè)次數(shù)/總監(jiān)測(cè)次數(shù)x100%;整體速度:頁面的平均加載速度。整體速度=總下載字節(jié)數(shù)/整體性能;webfunny前端監(jiān)控系統(tǒng)的用戶細(xì)查功能:是深入分析每個(gè)用戶,記錄用戶的所有行為。穩(wěn)定的前端監(jiān)控和js性...
前端出現(xiàn)異常的時(shí)候,前端程序員如何快速甩鍋?這就需要定位到前端異常的問題,才能有針對(duì)性的去甩鍋。常見的前端異常一、白屏想必是前端小伙伴的噩夢(mèng),因?yàn)轫撁姘灼亮?,?duì)前端小伙伴來說,是屬于嚴(yán)重的bug了,因?yàn)闃I(yè)務(wù)因此癱瘓了,哪怕不是前端程序員的鍋,也背定了。為了避免一臉懵逼,什么有用的信息都沒有,解決起來無從著手的情況發(fā)生,我們要知道導(dǎo)致白屏的原因有哪些呢?基本上導(dǎo)致白屏的原因是你的JS報(bào)錯(cuò)了,運(yùn)行時(shí)拋出異常,靜態(tài)資源加載失敗,如:js、css文件加載失敗,也會(huì)導(dǎo)致白屏。以上兩點(diǎn)是導(dǎo)致前端白屏的主要原因,當(dāng)然還有什么機(jī)子兼容性不好太卡,網(wǎng)絡(luò)異常什么的,那都小概率事件,屬于前端監(jiān)控的另一個(gè)維度了,we...
你知道有多少用戶沒等到頁面首屏出現(xiàn)就離開了嗎?性能不佳會(huì)對(duì)業(yè)務(wù)目標(biāo)產(chǎn)生負(fù)面影響。比如,BBC發(fā)現(xiàn)他們的網(wǎng)站加載時(shí)間每增加一秒,他們就會(huì)失去10%的用戶。高性能站點(diǎn)比低性能站點(diǎn)更能吸引和留住用戶,而留住用戶對(duì)于提高用戶轉(zhuǎn)化率至關(guān)重要。 何衡量站點(diǎn)性能站點(diǎn)性能好壞的表現(xiàn)形式是多樣的,不是單純通過頁面加載速度、頁面渲染速度就能衡量,而是要關(guān)注從頁面開始加載到被關(guān)閉的整個(gè)過程中,用戶對(duì)性能的感知。一個(gè)頁面,即使很快渲染,如果對(duì)用戶的交互遲遲沒有響應(yīng),那么在用戶心中這個(gè)站點(diǎn)的性能依然很差。站點(diǎn)性能一般可以分為兩類,一類是首屏性能,另一類是運(yùn)行時(shí)性能。前者衡量的是頁面從加載開始到可以穩(wěn)定交互的性...
搭建前端監(jiān)控系統(tǒng)(七)之用戶細(xì)查篇前端程序員都知道搭建監(jiān)控系統(tǒng),主要涉及幾大指標(biāo),流量數(shù)據(jù)、錯(cuò)誤數(shù)據(jù)、接口數(shù)據(jù)、性能數(shù)據(jù)等;這些數(shù)據(jù)統(tǒng)計(jì)出來以后,除了他們本身的作用外,怎么利用這幾大類型數(shù)據(jù)來幫我們排查問題呢,那就涉及到「用戶細(xì)查」的部分了?!赣脩艏?xì)查」顧名思義就是把用戶所有的行為記錄統(tǒng)計(jì)出來,幫助前端開發(fā)者來定位,或者復(fù)現(xiàn)用戶所產(chǎn)生的問題。如果一套前端監(jiān)控系統(tǒng)沒有用戶細(xì)查的能力,光能看問題,卻不能解決問題,那也就是失去了監(jiān)控系統(tǒng)的靈魂了。而作為監(jiān)控系統(tǒng)之一的webfunny前端監(jiān)控,因?yàn)殚_發(fā)者也就是我本人就是從事前端多年,深深知道監(jiān)控的痛點(diǎn),所以在設(shè)計(jì)「用戶細(xì)查」的時(shí)候做了很多維度的細(xì)分功能...
前端出現(xiàn)異常的時(shí)候,前端程序員如果發(fā)現(xiàn)是CDN報(bào)錯(cuò)的原因,這個(gè)時(shí)候?yàn)榱吮苊獬霈F(xiàn)替第三方公司背鍋,因?yàn)樽銮岸说亩贾?,這是很憋屈的一種線上Bug,還是替第三方公司背鍋。如果是第三方的東西出了問題,上面領(lǐng)導(dǎo)永遠(yuǎn)都只懷疑是你的代碼有bug,如果你沒有有力的證據(jù),即使你已經(jīng)排查過了,領(lǐng)導(dǎo)也只會(huì)說一句“你再去好好排查一下你自己的代碼”,這時(shí)候前端可能會(huì)很委屈、有一鍵盤呼他臉上的沖動(dòng)。因?yàn)橹肮ぷ鞯臅r(shí)候出現(xiàn)過這種背鍋的事情,所以在webfunny前端監(jiān)控系統(tǒng)里加入了對(duì)靜態(tài)資源的監(jiān)控功能。前不久,阿里部分區(qū)域的出現(xiàn)了5分鐘無法訪問的情況。我們線上群里頓時(shí)就炸開了鍋,讓我趕緊排查問題。我打開了錯(cuò)誤監(jiān)控,發(fā)現(xiàn)只...
做過前端的開發(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,目前在Github上收獲了4.6k+的star。 webfunny埋點(diǎn)系統(tǒng)...
前端監(jiān)控通常情況下監(jiān)控的內(nèi)容可以分為三類:一,js錯(cuò)誤。js錯(cuò)誤又分大概四種:一是uncaughterror,這種錯(cuò)誤通常情況下發(fā)生在我們的開發(fā)過程中。理論上不需要我們進(jìn)行上報(bào)。二是jsruntimeerror,這種錯(cuò)誤會(huì)觸發(fā)window.onerror事件,我們可以通過onerror事件,獲取到相關(guān)的信息進(jìn)行上報(bào)。三是資源錯(cuò)誤,比如圖片加載失敗等,它也會(huì)觸發(fā)error事件。四是unhandledregection錯(cuò)誤,這種錯(cuò)誤由promise觸發(fā),我們可以onunhandledrejection方法獲取相關(guān)信息進(jìn)行上報(bào)webfunny前端監(jiān)控系統(tǒng),只需簡(jiǎn)單幾步,前端程序員就可以搭建出屬于自己...
前端程序員如何明確定位、排查前端生產(chǎ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é)果如下:通過webfunny前端監(jiān)控系統(tǒng),我統(tǒng)計(jì)出了每天的錯(cuò)誤量,每個(gè)小時(shí)的錯(cuò)誤量,每天的錯(cuò)誤量變化,來鑒定線上環(huán)境是否健康。按照J(rèn)S錯(cuò)誤數(shù)量進(jìn)行分類排序,按照...
前端大體上將監(jiān)控分為3種、用戶行為監(jiān)控、異常監(jiān)控、性能監(jiān)控,前端且存在多端,每個(gè)端的每個(gè)監(jiān)控方式又不太一樣,很難做到sdk一套多用。所以基本都采用多端不同的sdk。不同公司也是根據(jù)各自需要建設(shè)對(duì)應(yīng)的監(jiān)控體系。前端異常監(jiān)控:排查問題更簡(jiǎn)單、更及時(shí),發(fā)現(xiàn)問題的由用戶主動(dòng)反饋轉(zhuǎn)變?yōu)殚_發(fā)主動(dòng)發(fā)現(xiàn)問題。 前端埋點(diǎn)平臺(tái)(用戶行為監(jiān)控):產(chǎn)品運(yùn)營(yíng)根據(jù)數(shù)據(jù)做分析,不斷優(yōu)化產(chǎn)品應(yīng)用。 性能監(jiān)控:監(jiān)控網(wǎng)站的性能,了解用戶訪問的過程中的體驗(yàn)感,可進(jìn)行針對(duì)性的優(yōu)化。 困擾前端工程師的線上問題難定位的苦惱可以拋開了,webfunny前端監(jiān)控系統(tǒng)針對(duì)程序員量身打造。前端監(jiān)控和靜態(tài)資源加載錯(cuò)誤監(jiān)控平臺(tái)搭建前...
前端技術(shù)優(yōu)化方案,需要有著陸點(diǎn),以下就是前端優(yōu)化比較基本的兩個(gè)著陸點(diǎn)。1.白屏?xí)r間:輸入網(wǎng)址后回車-瀏覽器出現(xiàn)的元素。2.首屏?xí)r間:輸入網(wǎng)址后回車-瀏覽器渲染完成耗時(shí)的過程包括:DNS查詢、TCP連接、HTTP請(qǐng)求響應(yīng)、HTML解析。減少DNS查詢(時(shí)間極端,幾乎可以忽略)、減少TCP連接次數(shù)(適量保持keep-alive,負(fù)載均衡)、減少HTTP請(qǐng)求數(shù)(合并靜態(tài)資源請(qǐng)求,js合并,雪碧圖,小圖片轉(zhuǎn)base64等等;合并接口請(qǐng)求)、壓縮資源體積(webpack打包壓縮靜態(tài)資源,nginx開啟gzip做合適程度的壓縮)、緩存靜態(tài)資源(使用CDN,靜態(tài)資源開啟cache-control,Nginx...
搭建前端監(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)容幾乎完...
搭建前端監(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)容幾乎完...
目前市面上有不少前端監(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部署,非??旖莘奖?;2、功能完善:不限制應(yīng)用的流量、自定義日志存儲(chǔ)時(shí)間,能夠適應(yīng)更多高并發(fā)的場(chǎng)景;3、針對(duì)性強(qiáng):針對(duì)前端使用場(chǎng)景研發(fā),輔助前端開發(fā),容易上手;4、無風(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ù)。高效前端實(shí)踐:如何監(jiān)控性能 & 分析數(shù)據(jù)...
你知道有多少用戶沒等到頁面首屏出現(xiàn)就離開了嗎?性能不佳會(huì)對(duì)業(yè)務(wù)目標(biāo)產(chǎn)生負(fù)面影響。比如,BBC發(fā)現(xiàn)他們的網(wǎng)站加載時(shí)間每增加一秒,他們就會(huì)失去10%的用戶。高性能站點(diǎn)比低性能站點(diǎn)更能吸引和留住用戶,而留住用戶對(duì)于提高用戶轉(zhuǎn)化率至關(guān)重要。 何衡量站點(diǎn)性能站點(diǎn)性能好壞的表現(xiàn)形式是多樣的,不是單純通過頁面加載速度、頁面渲染速度就能衡量,而是要關(guān)注從頁面開始加載到被關(guān)閉的整個(gè)過程中,用戶對(duì)性能的感知。一個(gè)頁面,即使很快渲染,如果對(duì)用戶的交互遲遲沒有響應(yīng),那么在用戶心中這個(gè)站點(diǎn)的性能依然很差。站點(diǎn)性能一般可以分為兩類,一類是首屏性能,另一類是運(yùn)行時(shí)性能。前者衡量的是頁面從加載開始到可以穩(wěn)定交互的性...
搭建前端監(jiān)控系統(tǒng)(六)之接口性能分析篇這是搭建前端監(jiān)控系統(tǒng)的第七章,主要是介紹如何監(jiān)控前端接口的性能。可能前端工程師會(huì)奇怪,接口的性能一直都是由后端的小伙伴來監(jiān)測(cè)的,關(guān)前端鳥事啊。但其實(shí)隨著前端業(yè)務(wù)日益復(fù)雜,前端開始承受著前所未有的重要職責(zé)。因?yàn)榍岸藰I(yè)務(wù)變得復(fù)雜,所以前端工程師必須開始讓前后端分離,前端、后端小伙伴各司其職,同時(shí)也帶來了大量的異步接口請(qǐng)求。所以,原本由后端小伙伴監(jiān)控接口的一部分職責(zé),便落到了我們前端小伙伴的肩膀上了。那么如何有效的進(jìn)行接口性能的監(jiān)控,通過webfunny前端監(jiān)控、只需要簡(jiǎn)單幾步就可以搭建一套屬于自己的前端監(jiān)控系統(tǒng)。webfunny前端監(jiān)控系統(tǒng)的功能:性能分析,通...
二、前端數(shù)據(jù)分類:2.4 異常相關(guān)的數(shù)據(jù)這里的異常是指 JS 的異常,用戶的瀏覽器上報(bào) JS 的 bug,這會(huì)極大地降低用戶體驗(yàn)異常的提示信息:這是識(shí)別一個(gè)異常的重要依據(jù),如:e.src 為空或不是對(duì)象JS 文件名異常所在行發(fā)生異常的瀏覽器堆棧信息:必要的時(shí)候需要函數(shù)調(diào)用的堆棧信息,但是注意堆棧信息可能會(huì)比較大,需要截取2.5 其它數(shù)據(jù)除了上面提到的 4 類基本的數(shù)據(jù)統(tǒng)計(jì)需求,我們當(dāng)然還可以根據(jù)實(shí)際情況來定義一些其他的統(tǒng)計(jì)需求,如用戶瀏覽器對(duì) canvas 的支持程度, 再比如比較特殊的-用戶進(jìn)行輪播圖翻頁的次數(shù),這些數(shù)據(jù)統(tǒng)計(jì)需求都是前端能夠滿足的,每一項(xiàng)統(tǒng)計(jì)的結(jié)果都體現(xiàn)了前端數(shù)據(jù)的價(jià)值為什么...
前端監(jiān)控系統(tǒng)搭建第二步之阿里云購(gòu)買域名購(gòu)買阿里云服務(wù)器之后,就獲得了這個(gè)服務(wù)器對(duì)外的公網(wǎng)IP,通過這個(gè)IP和端口,我們就可以訪問這臺(tái)服務(wù)器上的服務(wù)。可是無論上傳還是訪問,總是通過ip有點(diǎn)太不專業(yè)了,為了安全,而且很多網(wǎng)站是禁止ip直接訪問的,所以,我們需要有一個(gè)域名。申請(qǐng)域名:這個(gè)在阿里云上操作很簡(jiǎn)單,當(dāng)然越好的域名就越貴。這里邊有一點(diǎn)需要注意,以后有可能給這個(gè)域名購(gòu)買https證書,阿里云上的審核比較嚴(yán)格,有些是無法審核通過的,所以可以先嘗試買一個(gè)簡(jiǎn)單的,測(cè)試一下,省得花冤枉錢。域名需要經(jīng)過購(gòu)買,備案,準(zhǔn)備資料,上傳資料,審核,一系列步驟之后,才可以真正使用(步驟繁瑣,建議要有耐心)。域名審...
搭建前端監(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)境并沒有給前端開發(fā)者報(bào)出這么多的問題,但是可以看到,每天還是有很多的靜態(tài)資源加載報(bào)錯(cuò),有些是很重要的靜態(tài)資源文件,是必然會(huì)導(dǎo)致頁面渲染失敗的,所以必須要解決建立合理的前端監(jiān)控機(jī)...
前端程序員如何明確定位、排查前端生產(chǎ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é)果如下:通過webfunny前端監(jiān)控系統(tǒng),我統(tǒng)計(jì)出了每天的錯(cuò)誤量,每個(gè)小時(shí)的錯(cuò)誤量,每天的錯(cuò)誤量變化,來鑒定線上環(huán)境是否健康。按照J(rèn)S錯(cuò)誤數(shù)量進(jìn)行分類排序,按照...
前端監(jiān)控系統(tǒng)搭建第一步之購(gòu)買阿里云服務(wù)器(本地部署類似)對(duì)于之前沒有搞過服務(wù)器的前端來說,折騰一個(gè)能運(yùn)行的服務(wù)器,還真是費(fèi)了不少周折。服務(wù)器類型:入門級(jí)(共享)2vCPU、4GB內(nèi)存、帶寬2M(個(gè)人建議2vCpu、2GB內(nèi)存足矣)安裝運(yùn)行環(huán)境:系統(tǒng):Ubuntu1664位硬盤40G(默認(rèn))安裝nvm安裝使用教程,運(yùn)行前端項(xiàng)目可能會(huì)需要切換node版本,建議提前安裝。安裝PM2安裝使用教程,運(yùn)行node服務(wù)應(yīng)該都知道這個(gè),它是個(gè)node服務(wù)進(jìn)程管理器。安裝JDK(Java運(yùn)行環(huán)境),安裝tomcat,并配置環(huán)境變量,這個(gè)網(wǎng)上教程一大堆。安裝Jenkins安裝教程,下載Jenkins的war包,在...
為什么要監(jiān)控頁面性能?一個(gè)頁面性能差的話會(huì)影響用戶體驗(yàn)。用戶打開頁面等待的太久,可能會(huì)直接關(guān)掉頁面,甚至就不再使用了,這種情況在移動(dòng)端更加明顯,移動(dòng)端用戶對(duì)頁面響應(yīng)延遲容忍度很低。雖然頁面性能很重要,但是在實(shí)際使用中,頁面性能差的情況并不少見。首先,在產(chǎn)品的迭代演進(jìn)過程中,頁面性能可能會(huì)被忽略,性能隨著版本迭代而有所衰減;其次,性能優(yōu)化是一項(xiàng)復(fù)雜而挑戰(zhàn)的事情,需要明確的優(yōu)化方向和具體的優(yōu)化手段才能快速落地取效。所以我們需要一個(gè)性能監(jiān)控系統(tǒng),持續(xù)監(jiān)控和預(yù)警頁面性能的狀況,并且在發(fā)現(xiàn)瓶頸的時(shí)候指導(dǎo)優(yōu)化工作。webfunny前端監(jiān)控系統(tǒng),只需簡(jiǎn)單幾步,前端程序員就可以搭建出屬于自己的項(xiàng)目應(yīng)用監(jiān)控。好...
前端大體上將監(jiān)控分為3種、用戶行為監(jiān)控、異常監(jiān)控、性能監(jiān)控,前端且存在多端,每個(gè)端的每個(gè)監(jiān)控方式又不太一樣,很難做到sdk一套多用。所以基本都采用多端不同的sdk。不同公司也是根據(jù)各自需要建設(shè)對(duì)應(yīng)的監(jiān)控體系。前端異常監(jiān)控:排查問題更簡(jiǎn)單、更及時(shí),發(fā)現(xiàn)問題的由用戶主動(dòng)反饋轉(zhuǎn)變?yōu)殚_發(fā)主動(dòng)發(fā)現(xiàn)問題。 前端埋點(diǎn)平臺(tái)(用戶行為監(jiān)控):產(chǎn)品運(yùn)營(yíng)根據(jù)數(shù)據(jù)做分析,不斷優(yōu)化產(chǎn)品應(yīng)用。 性能監(jiān)控:監(jiān)控網(wǎng)站的性能,了解用戶訪問的過程中的體驗(yàn)感,可進(jìn)行針對(duì)性的優(yōu)化。 前端監(jiān)控看似簡(jiǎn)單,但想要監(jiān)控真正發(fā)揮價(jià)值,還需要從各個(gè)方面進(jìn)行不斷的優(yōu)化和打磨??孔V的前端監(jiān)控和前端行為分析方案 做過前端的開發(fā)的小伙...
說到監(jiān)控,大家時(shí)間想到的肯定是Zabbix、Nagios等各種強(qiáng)大的后端監(jiān)控服務(wù)。 誠(chéng)然,這些強(qiáng)大的平臺(tái)通過采集服務(wù)器以及鏈路上各種中間件的數(shù)據(jù),為我們的應(yīng)用穩(wěn)定起到了不可或缺的保駕護(hù)航作用。然而在互聯(lián)網(wǎng)的另一端,運(yùn)行在用戶終端上的代碼卻缺少這樣強(qiáng)大的監(jiān)控能力。 對(duì)于工程師來說,想到或者做出一個(gè)前端監(jiān)控方案并不是什么難事——通過全局的window.onerror事件捕獲到運(yùn)行時(shí)錯(cuò)誤,然后上報(bào)到采集端,再做一個(gè)頁面展示數(shù)據(jù)——看起來確實(shí)只需要寫一個(gè)簡(jiǎn)單的CRUD應(yīng)用就能搞定。webfunny前端監(jiān)控此就是把前端監(jiān)控應(yīng)用做到面面俱到。 webfunny前端監(jiān)控專為前端開發(fā)所打造。通...
前端程序員如何明確定位、排查前端生產(chǎn)問題?四、記錄用戶的接口行為接口請(qǐng)求是一個(gè)前端項(xiàng)目涉及比較多的行為,接口的異常包括:后臺(tái)報(bào)錯(cuò),響應(yīng)超時(shí),網(wǎng)絡(luò)環(huán)境較差,重復(fù)接口數(shù)據(jù)覆蓋等等。這些錯(cuò)誤也只有在真實(shí)的用戶環(huán)境中才會(huì)發(fā)生,是典型的線上問題。通過webfunny前端監(jiān)控系統(tǒng)可以記錄下用戶的請(qǐng)求時(shí)間,參數(shù),響應(yīng)時(shí)間,響應(yīng)狀態(tài)等等,可以具體分析出來接口對(duì)頁面的影響。五、記錄用戶的點(diǎn)擊行為用戶經(jīng)過一系列復(fù)雜的行為操作之后(主要是點(diǎn)擊行為),頁面的樣子和保存的數(shù)據(jù)都經(jīng)過了很多變化,此時(shí)此刻很容易發(fā)生數(shù)據(jù)錯(cuò)亂的現(xiàn)象,導(dǎo)致修復(fù)bug的時(shí)候無從入手,是復(fù)現(xiàn)用戶行為中重要的一環(huán)。困擾前端工程師的線上問題難定位的苦惱...
前端出現(xiàn)異常的時(shí)候,前端程序員如何快速甩鍋?特別是前端程序員發(fā)現(xiàn)前端報(bào)錯(cuò)的原因是接口報(bào)錯(cuò),這時(shí)候如何把這個(gè)前端報(bào)錯(cuò)的問題優(yōu)雅的甩給后端程序員。可能有些前端程序員會(huì)認(rèn)為接口的報(bào)錯(cuò)應(yīng)該由后臺(tái)來關(guān)注,統(tǒng)計(jì),并修復(fù)。確實(shí)如此,而且后臺(tái)服務(wù)有了很多成熟完善的統(tǒng)計(jì)工具,完全能夠應(yīng)對(duì)大部分的異常情況,那么為什么還需要前端來解決接口問題呢。原因很簡(jiǎn)單,因?yàn)榍岸耸莃ug的重要發(fā)現(xiàn)位置,報(bào)錯(cuò)發(fā)生時(shí)肯定會(huì)先找到前端程序員來解決,那么在前端幫后臺(tái)背鍋之前怎么快速優(yōu)雅的"甩鍋"呢?大家有沒有想過,如果前端程序員都對(duì)自己的項(xiàng)目做了系統(tǒng)的監(jiān)控、報(bào)錯(cuò)都能實(shí)時(shí)反饋展示,就不用擔(dān)心甩鍋的問題了。webfunny前端監(jiān)控工具,就是...
前端監(jiān)控系統(tǒng)搭建第一步之購(gòu)買阿里云服務(wù)器(本地部署類似)對(duì)于之前沒有搞過服務(wù)器的前端來說,折騰一個(gè)能運(yùn)行的服務(wù)器,還真是費(fèi)了不少周折。服務(wù)器類型:入門級(jí)(共享)2vCPU、4GB內(nèi)存、帶寬2M(個(gè)人建議2vCpu、2GB內(nèi)存足矣)安裝運(yùn)行環(huán)境:系統(tǒng):Ubuntu1664位硬盤40G(默認(rèn))安裝nvm安裝使用教程,運(yùn)行前端項(xiàng)目可能會(huì)需要切換node版本,建議提前安裝。安裝PM2安裝使用教程,運(yùn)行node服務(wù)應(yīng)該都知道這個(gè),它是個(gè)node服務(wù)進(jìn)程管理器。安裝JDK(Java運(yùn)行環(huán)境),安裝tomcat,并配置環(huán)境變量,這個(gè)網(wǎng)上教程一大堆。安裝Jenkins安裝教程,下載Jenkins的war包,在...
二、前端數(shù)據(jù)分類:2.2 性能相關(guān)的數(shù)據(jù)白屏?xí)r間:用戶從打開頁面開始到頁面開始有東西呈現(xiàn)為止,這過程中占用的時(shí)間就是白屏?xí)r間首屏?xí)r間:用戶瀏覽器首屏內(nèi)所有內(nèi)容都呈現(xiàn)出來所花費(fèi)的時(shí)間用戶可選擇操作時(shí)間:用戶可以進(jìn)行正常的點(diǎn)擊、輸入等操作頁面總下載時(shí)間:頁面所有資源都加載完成并呈現(xiàn)出來所花的時(shí)間,即頁面 onload 的時(shí)間自定義的時(shí)間點(diǎn):對(duì)于開發(fā)人員來說,完全可以自定義一些時(shí)間點(diǎn),例如:某個(gè)組件 init 完成的時(shí)間、某個(gè)重要模塊加載的時(shí)間等等2.3 點(diǎn)擊相關(guān)的數(shù)據(jù)頁面總點(diǎn)擊量人均點(diǎn)擊量:對(duì)于導(dǎo)航類的網(wǎng)頁,這項(xiàng)指標(biāo)是非常重要的流出 url:同樣,導(dǎo)航類的網(wǎng)頁,直接了解網(wǎng)頁導(dǎo)流的去向點(diǎn)擊時(shí)間:用戶...