webfunny整套前端監(jiān)控監(jiān)控系統(tǒng)的流程是比較簡(jiǎn)單的:手機(jī)端-用戶訪問頁(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ù)來存數(shù)據(jù)庫(kù),目前沒有遇到卡死的情況。webfunny前端監(jiān)控系統(tǒng)的數(shù)據(jù)庫(kù),采用了每日分表的模式,目前千萬(wàn)級(jí)別的日志量是沒有問題的哦,請(qǐng)放心使用吧。Webfunny前端監(jiān)控系統(tǒng)支持的項(xiàng)目有H5前端、PC前端、微信小程序、uni-APP。webfunny埋點(diǎn)系統(tǒng),更輕量、易使用,降低數(shù) 據(jù)分析使用門檻,...
現(xiàn)有的大部分監(jiān)控方案都是針對(duì)服務(wù)端的,而針對(duì)前端的監(jiān)控很少,諸如線上頁(yè)面的白屏?xí)r間是多少、靜態(tài)資源的加載情況如何、接口請(qǐng)求耗時(shí)好久、什么時(shí)候掛掉了、為什么掛掉,這些都不清楚。同時(shí),在產(chǎn)品推廣過程中,經(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前端一體化埋點(diǎn)系統(tǒng),支持一鍵添加看板,靈活創(chuàng)建分析模型。如何搭建前端監(jiān)控和js錯(cuò)誤監(jiān)控怎樣定位前端線上問題,一直以來,都是很頭疼的問題,因?yàn)?..
前端監(jiān)控目標(biāo)前端監(jiān)控主要包含兩大塊:性能監(jiān)控及異常監(jiān)控保證穩(wěn)定性(異常監(jiān)控)錯(cuò)誤監(jiān)控包括JavaScript代碼錯(cuò)誤,Promsie錯(cuò)誤,接口(XHR,fetch)錯(cuò)誤,資源加載錯(cuò)誤(script,link等)等,這些錯(cuò)誤大多會(huì)導(dǎo)致頁(yè)面功能異常甚至白屏。提升用戶體驗(yàn)(性能監(jiān)控)性能監(jiān)控包括頁(yè)面的加載時(shí)間,接口響應(yīng)時(shí)間等,側(cè)面反應(yīng)了用戶體驗(yàn)的好壞。 3性能監(jiān)控3.1簡(jiǎn)單描述頁(yè)面加載簡(jiǎn)單看一下,從輸入url到頁(yè)面加載完成的過程如下:首先需要通過DNS(域名解析系統(tǒng))將URL解析為對(duì)應(yīng)的IP地址,然后與這個(gè)IP地址確定的那臺(tái)服務(wù)器建立起TCP網(wǎng)絡(luò)連接,隨后我們向服務(wù)端拋出HTTP請(qǐng)求,服務(wù)...
前端程序員如何明確定位、排查前端生產(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ì)頁(yè)面的影響。五、記錄用戶的點(diǎn)擊行為用戶經(jīng)過一系列復(fù)雜的行為操作之后(主要是點(diǎn)擊行為),頁(yè)面的樣子和保存的數(shù)據(jù)都經(jīng)過了很多變化,此時(shí)此刻很容易發(fā)生數(shù)據(jù)錯(cuò)亂的現(xiàn)象,導(dǎo)致修復(fù)bug的時(shí)候無從入手,是復(fù)現(xiàn)用戶行為中重要的一環(huán)。webfunny埋點(diǎn)系統(tǒng)具備靈活多維...
搭建前端監(jiān)控系統(tǒng)(四)接口請(qǐng)求異常監(jiān)控篇前端接口請(qǐng)求異常監(jiān)控的必要性:1.前端工程師需要監(jiān)控接口報(bào)錯(cuò)的情況,及時(shí)定位線上問題產(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)求的信息分離出來。webfunny支持私有化部署,容器化部署,可支持千萬(wàn)級(jí)PV的...
前端工程師們都知道,前端的線上問題很難定位,因?yàn)樗l(fā)生于用戶的一系列操作之后。前端線上問題錯(cuò)誤的原因可能源于機(jī)型、網(wǎng)絡(luò)環(huán)境、接口請(qǐng)求、復(fù)雜的操作行為等等,在我們想要去解決的時(shí)候很難復(fù)現(xiàn)出來,自然也就無法解決。當(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嗝屁了,你能知道是第三方的問題,而不是滿頭大汗排查你的代碼嗎?當(dāng)你線上的用戶在app上做了一大堆奇葩的操作,搞成了一個(gè)莫名的Bug,你有信心將它復(fù)現(xiàn)嗎?身為一名前端開發(fā)者,webfu...
說到前端監(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)警。 高效前端實(shí)踐:如何監(jiān)控性能 & 分析數(shù)據(jù)?webfunny前端監(jiān)控教你從零開始搭建??孔V的前端監(jiān)控工具如何解決前端線上問題?如果你是一位前端工程師,那你...
提到監(jiān)控系統(tǒng),大部分開發(fā)人員首先想到的是后端監(jiān)控。很明顯,比如檢測(cè)服務(wù)器性能,數(shù)據(jù)庫(kù)性能,API的訪問流量,以及各種服務(wù)的運(yùn)行情況等等,都與后端息息相關(guān)。而前端更多承擔(dān)的是UI展現(xiàn)的角色,主要關(guān)注頁(yè)面怎么排版設(shè)計(jì),好像沒什么需要監(jiān)測(cè)的地方,因此一直以來都沒有涉及到監(jiān)控的概念。 于是呢大家就一致認(rèn)為:只要后端穩(wěn)定可控,應(yīng)用就是穩(wěn)定可控的,可實(shí)際情況前端監(jiān)控的重要性不亞于后端。現(xiàn)在的前端監(jiān)控并不僅是監(jiān)控異常數(shù)據(jù),任何有利于產(chǎn)品分析的數(shù)據(jù)都可以加入監(jiān)控。所以我認(rèn)為前端監(jiān)控,就是指采集用戶使用系統(tǒng)過程中產(chǎn)生的關(guān)鍵數(shù)據(jù),存儲(chǔ)到數(shù)據(jù)庫(kù),后續(xù)可以查找和分析,這樣的整套實(shí)現(xiàn)就被稱為前端監(jiān)控系統(tǒng)。 w...
搭建前端監(jiān)控系統(tǒng)(四)接口請(qǐng)求異常監(jiān)控篇前端接口請(qǐng)求異常監(jiān)控的必要性:1.前端工程師需要監(jiān)控接口報(bào)錯(cuò)的情況,及時(shí)定位線上問題產(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)求等等。總之他們封裝的方法各不相同,但是萬(wàn)變不離其宗,他們都是對(duì)瀏覽器的這個(gè)對(duì)象window.XMLHttpRequest進(jìn)行了封裝,所以我們只要能夠監(jiān)控排查到這個(gè)對(duì)象的一些事件,就能夠把請(qǐng)求的信息分離出來。webfunny前端監(jiān)控系統(tǒng)的錯(cuò)誤分析功能,通過探針監(jiān)控和上報(bào)...
搭建前端監(jiān)控系統(tǒng)(三)靜態(tài)資源加載監(jiān)控篇如何監(jiān)控前端靜態(tài)資源加載情況:2、利用performance.getEntries()方法,獲取到所有加載成功的資源列表,在onload事件中遍歷出所有頁(yè)面資源整合部分,利用排除法,到所有整合部分中過濾掉成功的資源列表,即為加載失敗的資源。此方法看似合理,也確實(shí)能夠排查出加載失敗的靜態(tài)資源,但是檢查的時(shí)機(jī)很難掌握,另外如果遇到異步加載的js也就歇菜了;3、添加一個(gè)Listener(error)來捕獲前端的異常,也是我正在使用的方法,比較靠譜。但是這個(gè)方法會(huì)監(jiān)控到很多的error,所以我們要從中篩選出靜態(tài)資源加載報(bào)錯(cuò)的error。webfunny前端監(jiān)控系...
前端監(jiān)控系統(tǒng)搭建第二步之阿里云購(gòu)買域名購(gòu)買阿里云服務(wù)器之后,就獲得了這個(gè)服務(wù)器對(duì)外的公網(wǎng)IP,通過這個(gè)IP和端口,我們就可以訪問這臺(tái)服務(wù)器上的服務(wù)??墒菬o論上傳還是訪問,總是通過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)備資料,上傳資料,審核,一系列步驟之后,才可以真正使用(步驟繁瑣,建議要有耐心)。域名審...
如何解決前端線上問題?如果你是一位前端工程師,那你一定不止一次去解決一些頑固的線上問題,你也曾想方設(shè)法復(fù)現(xiàn)用戶的bug,結(jié)果可能都不太理想。怎樣定位前端線上問題,一直以來,都是很頭疼的問題,因?yàn)樗l(fā)生于用戶的一系列操作之后。錯(cuò)誤的原因可能源于機(jī)型,網(wǎng)絡(luò)環(huán)境,復(fù)雜的操作行為等等,在我們想要去解決的時(shí)候很難復(fù)現(xiàn)出來,自然也就無法解決。身為一名前端工程師,我每天都要面臨很多線上的問題,一時(shí)間讓我焦頭爛額。雖然公司也有其他的監(jiān)控系統(tǒng),但是每次解決問題都需要輾轉(zhuǎn)于各種監(jiān)控系統(tǒng)之間,亦是疲憊不堪。所以,一怒之下,基于自己在前端線上監(jiān)控工作時(shí)的這些痛點(diǎn),我便為自己(前端工程師)量身定做了這樣一款監(jiān)控系統(tǒng):w...
搭建前端監(jiān)控系統(tǒng)(六)之接口性能分析篇,如何監(jiān)控前端接口的性能。二、單個(gè)接口分析很多時(shí)候,前端出現(xià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一體化埋點(diǎn)系統(tǒng):數(shù)據(jù)“采集+管理+分析”智能一體化,數(shù)...
webfunny整套前端監(jiān)控監(jiān)控系統(tǒng)的流程是比較簡(jiǎn)單的:手機(jī)端-用戶訪問頁(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ù)來存數(shù)據(jù)庫(kù),目前沒有遇到卡死的情況。webfunny前端監(jiān)控系統(tǒng)的數(shù)據(jù)庫(kù),采用了每日分表的模式,目前千萬(wàn)級(jí)別的日志量是沒有問題的哦,請(qǐng)放心使用吧。Webfunny前端監(jiān)控系統(tǒng)支持的項(xiàng)目有H5前端、PC前端、微信小程序、uni-APP。webfunny通過對(duì)線上項(xiàng)目的實(shí)時(shí)分析,能讓前端工程師對(duì)線上狀況...
搭建前端監(jiān)控系統(tǒng)(六)之接口性能分析篇,如何監(jiān)控前端接口的性能。二、單個(gè)接口分析很多時(shí)候,前端出現(xià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),自定義埋點(diǎn)功能,如果是純前端的業(yè)務(wù)打點(diǎn)需...
二、前端數(shù)據(jù)分類:2.2 性能相關(guān)的數(shù)據(jù)白屏?xí)r間:用戶從打開頁(yè)面開始到頁(yè)面開始有東西呈現(xiàn)為止,這過程中占用的時(shí)間就是白屏?xí)r間首屏?xí)r間:用戶瀏覽器首屏內(nèi)所有內(nèi)容都呈現(xiàn)出來所花費(fèi)的時(shí)間用戶可選擇操作時(shí)間:用戶可以進(jìn)行正常的點(diǎn)擊、輸入等操作頁(yè)面總下載時(shí)間:頁(yè)面所有資源都加載完成并呈現(xiàn)出來所花的時(shí)間,即頁(yè)面 onload 的時(shí)間自定義的時(shí)間點(diǎn):對(duì)于開發(fā)人員來說,完全可以自定義一些時(shí)間點(diǎn),例如:某個(gè)組件 init 完成的時(shí)間、某個(gè)重要模塊加載的時(shí)間等等2.3 點(diǎn)擊相關(guān)的數(shù)據(jù)頁(yè)面總點(diǎn)擊量人均點(diǎn)擊量:對(duì)于導(dǎo)航類的網(wǎng)頁(yè),這項(xiàng)指標(biāo)是非常重要的流出 url:同樣,導(dǎo)航類的網(wǎng)頁(yè),直接了解網(wǎng)頁(yè)導(dǎo)流的去向點(diǎn)擊時(shí)間:用戶...
前端監(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)控系統(tǒng)(六)之接口性能分析篇這是搭建前端監(jiān)控系統(tǒng)的第七章,主要是介紹如何監(jiān)控前端接口的性能。后端小伙伴能夠監(jiān)控到的,也就是收到請(qǐng)求后(request)到得到處理結(jié)果即將返回(response)前的這一段時(shí)間,缺失了瀏覽器跟網(wǎng)關(guān)之間的耗時(shí)。而我們前端用戶感受到的卻是接口總耗時(shí),如果前端不做前端接口的監(jiān)控,那么將無法得知用戶真正的使用體驗(yàn)。我們?cè)趙ebfunny前端監(jiān)控系統(tǒng)上,同行監(jiān)控不同項(xiàng)目,可以看到耗時(shí)5-10s的接口雖然只占了0.32%,但是也有1千多次呢,影響用戶達(dá)到600+,這難道不是前端小伙伴應(yīng)該關(guān)心的體驗(yàn)問題嗎?為什么前端小伙伴應(yīng)該關(guān)心接口性能,我們講完了,開始進(jì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)來處理。webfunny前端監(jiān)控系統(tǒng)JS常見錯(cuò)誤和解決方法集錦。常見的前端監(jiān)控和前端行為分析平臺(tái) 為什么要監(jiān)控頁(yè)面性能? 一個(gè)頁(yè)面性能差的話會(huì)影響用戶體驗(yàn)。用戶...
前端技術(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...
前端程序員如何明確定位、排查前端生產(chǎn)問題?二、分析錯(cuò)誤詳情通過webfunny前端監(jiān)控系統(tǒng),我們可以把線上的錯(cuò)誤日志統(tǒng)計(jì)出來了,那如何解析這些錯(cuò)誤日志呢。比如:解析出用戶的機(jī)型,版本,系統(tǒng)平臺(tái),影響范圍,以及具體的錯(cuò)誤位置,從而提高前端工程師解決問題的效率。window.onerror方法能夠利用的功能都已經(jīng)用的差不多了,但是它真的可以幫我們定位和解決所有前端線上的問題嗎?線上能夠修復(fù)的問題,前端工程師肯定是遇到都在盡量修復(fù),但是前端線上的問題頻發(fā)。當(dāng)客服反饋一個(gè)問題,你發(fā)現(xiàn)沒有測(cè)試機(jī)型,無法復(fù)現(xiàn)用戶錯(cuò)誤的時(shí)候,讓你來修復(fù)這個(gè)問題,前端只能兩眼一抹黑無能為力。所以前端監(jiān)控的建設(shè)很有必要性。前端...
前端大體上將監(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)的錯(cuò)誤分析功能,通過探針監(jiān)控和上報(bào)線上環(huán)境的報(bào)錯(cuò),以及一些自定義異常。國(guó)內(nèi)好用的前端監(jiān)控和前端錯(cuò)誤監(jiān)控產(chǎn)品整...
目前,市面上的前端監(jiān)控系統(tǒng)有很多,大多都是收費(fèi),對(duì)于小型前端項(xiàng)目來說,必然是痛點(diǎn)。另一點(diǎn)主要原因是,前端監(jiān)控系統(tǒng)功能通用,卻未必能夠滿足前端程序員們自己的需求。前端監(jiān)控功能主要包含:JS錯(cuò)誤日志監(jiān)控分析、靜態(tài)資源請(qǐng)求報(bào)錯(cuò)統(tǒng)計(jì)、用戶行為檢索、接口請(qǐng)求報(bào)錯(cuò)統(tǒng)計(jì)、HTML加載性能分析、PV和UV日志分析。那么前端程序員如何實(shí)現(xiàn)前端監(jiān)控系統(tǒng)搭建?工欲善其事,必先利其器。一個(gè)前端監(jiān)控系統(tǒng)開發(fā),需要開發(fā)環(huán)境,部署環(huán)境,以及各種開發(fā)工具來提高開發(fā)效率,那么就先從部署阿里云服務(wù)器來說吧,阿里云服務(wù)器的部署過程比較漫長(zhǎng),可能不是幾天能搞得定的,需要有耐心。webfunny通過探針記錄了用戶大量的操作行為,一旦出...
前端程序員如何明確定位、排查前端生產(chǎn)問題?二、分析錯(cuò)誤詳情通過webfunny前端監(jiān)控系統(tǒng),我們可以把線上的錯(cuò)誤日志統(tǒng)計(jì)出來了,那如何解析這些錯(cuò)誤日志呢。比如:解析出用戶的機(jī)型,版本,系統(tǒng)平臺(tái),影響范圍,以及具體的錯(cuò)誤位置,從而提高前端工程師解決問題的效率。window.onerror方法能夠利用的功能都已經(jīng)用的差不多了,但是它真的可以幫我們定位和解決所有前端線上的問題嗎?線上能夠修復(fù)的問題,前端工程師肯定是遇到都在盡量修復(fù),但是前端線上的問題頻發(fā)。當(dāng)客服反饋一個(gè)問題,你發(fā)現(xiàn)沒有測(cè)試機(jī)型,無法復(fù)現(xiàn)用戶錯(cuò)誤的時(shí)候,讓你來修復(fù)這個(gè)問題,前端只能兩眼一抹黑無能為力。所以前端監(jiān)控的建設(shè)很有必要性。we...
搭建前端監(jiān)控系統(tǒng)(七)之用戶細(xì)查篇二、利用多個(gè)維度來準(zhǔn)確定位到具體的用戶上面提到了用戶的userId獲取速度可能比較慢,或者根本不會(huì)有,那我們?cè)撛趺慈グ延脩舻男袨橛涗洸槌鰜砟亍F鋵?shí),我們可以通過用戶行為產(chǎn)生的時(shí)間,用戶的ip地址,地理位置以及訪問設(shè)備等信息的佐證,來找到具體的用戶,在webfunny前端監(jiān)控系統(tǒng)里,這塊兒會(huì)詳細(xì)展示出來。前端程序員通過其他維度的信息,可以鎖定一些用戶,即使在沒有userId的情況下,我們依然可以通過內(nèi)置ID查到用戶的行為記錄,幫助我們排查問題。其中如何通過IP地址查詢地理位置,建議前端程序員可以使用node-ip2region這個(gè)庫(kù)進(jìn)行查詢,挺好用的。webfu...
做過前端的開發(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前端監(jiān)控...
搭建前端監(jiān)控系統(tǒng)(七)之用戶細(xì)查篇一、如何貫穿用戶的整個(gè)行為鏈路?這個(gè)很好理解,貫穿用戶的整個(gè)行為鏈路,就需要一個(gè)單一的key來標(biāo)識(shí)這個(gè)用戶。比較簡(jiǎn)單的就是使用UserId了,在通過webfunny前端監(jiān)控系統(tǒng)「用戶細(xì)查」的功能模塊,每個(gè)用戶我都給他傳入一個(gè)userId就可以了串聯(lián)起來了。但是這種方式有一個(gè)很容易被忽略的弊端:如果這個(gè)項(xiàng)目獲取userId速度比較慢,或者壓根不會(huì)有userId,那么用戶的行為記錄是不是會(huì)出現(xiàn)缺失呢?或者根本就無法關(guān)聯(lián)呢?那我們?cè)撊绾我?guī)避這種問題呢?webfunny是如何做到的呢?為了規(guī)避以上提出的幾點(diǎn)問題,webfunny通過設(shè)置內(nèi)置id,來對(duì)所有的用戶進(jìn)行區(qū)分...
前端程序員如何明確定位、排查前端生產(chǎn)問題?六、記錄用戶的頁(yè)面截圖即使你記錄下所有的行為,但是你依然需要看到頁(yè)面的樣子,才能夠分析出問題所在,那么我們?cè)趙ebfunny前端監(jiān)控系統(tǒng)上,依然可以通過js截圖來看看用戶設(shè)備上的樣子。七、分析用戶的場(chǎng)外信息當(dāng)用戶所有的行為都被我們掌握之后,就能夠復(fù)現(xiàn)出用戶的行為,甚至能夠復(fù)現(xiàn)出用戶的問題,也許還需要一些場(chǎng)外信息才能明確定位問題,比如,用戶的機(jī)型,地理位置,系統(tǒng)版本,當(dāng)時(shí)的網(wǎng)絡(luò)環(huán)境(這個(gè)不準(zhǔn)確,我是依據(jù)用戶當(dāng)時(shí)加載頁(yè)面的時(shí)間來判斷,只能作為參考依據(jù)),前端問題產(chǎn)生的原因五花八門,只有把日志做全了,才能夠明確的定位和解決問題。webfunny前端監(jiān)控在錯(cuò)誤...
搭建前端監(jiān)控系統(tǒng)(四)接口請(qǐng)求異常監(jiān)控篇如何監(jiān)控前端接口請(qǐng)求報(bào)錯(cuò)?可能有前端程序員會(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ì)大部分的異常情況,那么為什么還需要前端對(duì)接口請(qǐng)求進(jìn)行監(jiān)控呢。原因很簡(jiǎn)單,因?yàn)榍岸耸莃ug的首要發(fā)現(xiàn)位置,在前端程序員幫后臺(tái)背鍋之前怎么快速把鍋甩出去呢?這時(shí)候,劃重點(diǎn)每個(gè)前端程序員都需要有一個(gè)接口的監(jiān)控系統(tǒng),這樣出現(xiàn)問題可以隨時(shí)定位)webfunny前端一體化埋點(diǎn)系統(tǒng),支持?jǐn)?shù)據(jù)實(shí)時(shí)共享,多看板協(xié)同辦公。穩(wěn)定的前端監(jiān)控和js文件加載錯(cuò)誤監(jiān)控平臺(tái)前端監(jiān)控系統(tǒng)搭建第三步之購(gòu)買CA證書或者說是HTTPS證書現(xiàn)在很...
webfunny前端監(jiān)控系統(tǒng)—純私有化部署,可實(shí)現(xiàn)的功能介紹,前端監(jiān)控第三個(gè)功能模塊、用戶細(xì)查維度:webfunny前端監(jiān)控這塊的功能可以讓前端工程師查看單個(gè)用戶的具體行為,前端工程師可以清楚地知道,某個(gè)用戶,在某個(gè)時(shí)間,訪問了某個(gè)頁(yè)面,點(diǎn)擊了某個(gè)按鈕,發(fā)送了某個(gè)請(qǐng)求,從而產(chǎn)生了某個(gè)錯(cuò)誤,一目了然。同時(shí)webfunny前端監(jiān)控系統(tǒng)還對(duì)這個(gè)用戶的各種外部環(huán)境做了分析,讓工程師追蹤用戶問題易如反掌。查詢用戶具體的行為記錄:主要包括一個(gè)月內(nèi)每天的訪問記錄、用戶瀏覽、點(diǎn)擊、請(qǐng)求、報(bào)錯(cuò)、超時(shí)等等,前端工程師可以清晰的知道用戶在頁(yè)面上的行為,從而復(fù)現(xiàn)用戶的bug。設(shè)備分析:主要包括設(shè)備、系統(tǒng)、IP、地理位...