前端出現(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ō)這是開(kāi)發(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í),我也是充分考慮到前端接口這個(gè)報(bào)錯(cuò)問(wèn)題點(diǎn)充分做了細(xì)致設(shè)計(jì)。webfunny前端監(jiān)控系統(tǒng)通過(guò)探針實(shí)現(xiàn)用戶細(xì)查。 支持使用多種檢索條件進(jìn)行搜索,提高查找效率。常見(jiàn)的前端監(jiān)控和前端異常監(jiān)控軟件
搭建前端監(jiān)控系統(tǒng)(七)之用戶細(xì)查篇二、利用多個(gè)維度來(lái)準(zhǔn)確定位到具體的用戶上面提到了用戶的userId獲取速度可能比較慢,或者根本不會(huì)有,那我們?cè)撛趺慈グ延脩舻男袨橛涗洸槌鰜?lái)呢。其實(shí),我們可以通過(guò)用戶行為產(chǎn)生的時(shí)間,用戶的ip地址,地理位置以及訪問(wèn)設(shè)備等信息的佐證,來(lái)找到具體的用戶,在webfunny前端監(jiān)控系統(tǒng)里,這塊兒會(huì)詳細(xì)展示出來(lái)。前端程序員通過(guò)其他維度的信息,可以鎖定一些用戶,即使在沒(méi)有userId的情況下,我們依然可以通過(guò)內(nèi)置ID查到用戶的行為記錄,幫助我們排查問(wèn)題。其中如何通過(guò)IP地址查詢地理位置,建議前端程序員可以使用node-ip2region這個(gè)庫(kù)進(jìn)行查詢,挺好用的。有哪些好用的前端監(jiān)控和前端行為分析系統(tǒng)webfunny前端監(jiān)控系統(tǒng)幫助開(kāi)發(fā)者實(shí)現(xiàn)實(shí)時(shí)掌握:運(yùn)營(yíng)數(shù)據(jù)、前端報(bào)錯(cuò)、頁(yè)面性能、接口性能、以及小程序監(jiān)控!
整體大致可以分四個(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)控:使用ResourceTimingAPI和PerformanceTimingAPI,可以計(jì)算許多重要的指標(biāo),比如頁(yè)面性能統(tǒng)計(jì)的起始點(diǎn)時(shí)間、首屏?xí)r間等。異常監(jiān)控:前端捕獲異常分為全局捕獲和局部捕獲。局部捕獲作為補(bǔ)充,對(duì)某些特殊情況進(jìn)行捕獲,但分散,不利于管理。所以,我會(huì)選擇全局捕獲的方式,即通過(guò)全局的接口,將捕獲代碼集中寫在一個(gè)地方。具體在實(shí)現(xiàn)項(xiàng)目中,我應(yīng)該會(huì)采用badjs-report,它重寫了進(jìn)行上報(bào)異常,無(wú)需編寫任何捕獲錯(cuò)誤的代碼。
搭建前端監(jiān)控系統(tǒng)(五)消息隊(duì)列處理并發(fā):1、增加日志上傳的時(shí)間間隔前端程序員應(yīng)該都知道,日志上傳的時(shí)間間隔越長(zhǎng),用戶在這個(gè)間隔內(nèi)離開(kā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ì)是一筆非常龐大的開(kāi)銷。webfunny通過(guò)探針記錄了用戶大量的操作行為,一旦出現(xiàn)問(wèn)題,復(fù)現(xiàn)BUG也將變得非常簡(jiǎn)單。
前端程序員如何明確定位、排查前端生產(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)題的效率。方法能夠利用的功能都已經(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è)很有必要性。webfunny一鍵搭建前端監(jiān)控系統(tǒng),實(shí)時(shí)了解線上應(yīng)用健康情況!常見(jiàn)的前端監(jiān)控和前端異常監(jiān)控平臺(tái)
webfunny線上調(diào)試功能,支持實(shí)時(shí)了解用戶的行為、控制臺(tái)打印信息、本地緩存信息等,就好像在本地調(diào)試一樣。常見(jiàn)的前端監(jiān)控和前端異常監(jiān)控軟件
二、前端數(shù)據(jù)分類:2.4 異常相關(guān)的數(shù)據(jù)這里的異常是指 JS 的異常,用戶的瀏覽器上報(bào) JS 的 bug,這會(huì)極大地降低用戶體驗(yàn)異常的提示信息:這是識(shí)別一個(gè)異常的重要依據(jù),如:為空或不是對(duì)象JS 文件名異常所在行發(fā)生異常的瀏覽器堆棧信息:必要的時(shí)候需要函數(shù)調(diào)用的堆棧信息,但是注意堆棧信息可能會(huì)比較大,需要截取2.5 其它數(shù)據(jù)除了上面提到的 4 類基本的數(shù)據(jù)統(tǒng)計(jì)需求,我們當(dāng)然還可以根據(jù)實(shí)際情況來(lái)定義一些其他的統(tǒng)計(jì)需求,如用戶瀏覽器對(duì) canvas 的支持程度, 再比如比較特殊的-用戶進(jìn)行輪播圖翻頁(yè)的次數(shù),這些數(shù)據(jù)統(tǒng)計(jì)需求都是前端能夠滿足的,每一項(xiàng)統(tǒng)計(jì)的結(jié)果都體現(xiàn)了前端數(shù)據(jù)的價(jià)值常見(jiàn)的前端監(jiān)控和前端異常監(jiān)控軟件
上海觀縱科技有限公司是一家集研發(fā)、制造、銷售為一體的****,公司位于上海市奉賢區(qū)望園南路1288弄80號(hào)1904、1909室,成立于2022-11-14。公司秉承著技術(shù)研發(fā)、客戶優(yōu)先的原則,為國(guó)內(nèi)webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控的產(chǎn)品發(fā)展添磚加瓦。在孜孜不倦的奮斗下,公司產(chǎn)品業(yè)務(wù)越來(lái)越廣。目前主要經(jīng)營(yíng)有webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控等產(chǎn)品,并多次以傳媒、廣電行業(yè)標(biāo)準(zhǔn)、客戶需求定制多款多元化的產(chǎn)品。我們以客戶的需求為基礎(chǔ),在產(chǎn)品設(shè)計(jì)和研發(fā)上面苦下功夫,一份份的不懈努力和付出,打造了webfunny,walkingfunny,argus產(chǎn)品。我們從用戶角度,對(duì)每一款產(chǎn)品進(jìn)行多方面分析,對(duì)每一款產(chǎn)品都精心設(shè)計(jì)、精心制作和嚴(yán)格檢驗(yàn)。上海觀縱科技有限公司以市場(chǎng)為導(dǎo)向,以創(chuàng)新為動(dòng)力。不斷提升管理水平及webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控產(chǎn)品質(zhì)量。本公司以良好的商品品質(zhì)、誠(chéng)信的經(jīng)營(yíng)理念期待您的到來(lái)!