前端程序員如何明確定位、排查前端生產(chǎn)問題?二、分析錯誤詳情通過webfunny前端監(jiān)控系統(tǒng),我們可以把線上的錯誤日志統(tǒng)計出來了,那如何解析這些錯誤日志呢。比如:解析出用戶的機型,版本,系統(tǒng)平臺,影響范圍,以及具體的錯誤位置,從而提高前端工程師解決問題的效率。方法能夠利用的功能都已經(jīng)用的差不多了,但是它真的可以幫我們定位和解決所有前端線上的問題嗎?線上能夠修復(fù)的問題,前端工程師肯定是遇到都在盡量修復(fù),但是前端線上的問題頻發(fā)。當(dāng)客服反饋一個問題,你發(fā)現(xiàn)沒有測試機型,無法復(fù)現(xiàn)用戶錯誤的時候,讓你來修復(fù)這個問題,前端只能兩眼一抹黑無能為力。所以前端監(jiān)控的建設(shè)很有必要性。webfunny能夠輕松完成打點業(yè)務(wù)需求。webfunny還對埋點數(shù)據(jù)進行了漏斗分析,清晰查看兩個埋點的留存率。國內(nèi)好用的前端監(jiān)控和前端行為分析方案
搭建前端監(jiān)控系統(tǒng)(四)接口請求異常監(jiān)控篇如何監(jiān)控前端接口請求報錯?可能有前端程序員會認(rèn)為接口的報錯應(yīng)該由后臺來關(guān)注,統(tǒng)計,并修復(fù)。確實如此,而且后臺服務(wù)有了很多成熟完善的統(tǒng)計工具,完全能夠應(yīng)對大部分的異常情況,那么為什么還需要前端對接口請求進行監(jiān)控呢。原因很簡單,因為前端是bug的首要發(fā)現(xiàn)位置,在前端程序員幫后臺背鍋之前怎么快速把鍋甩出去呢?這時候,劃重點每個前端程序員都需要有一個接口的監(jiān)控系統(tǒng),這樣出現(xiàn)問題可以隨時定位)好用的前端監(jiān)控和js錯誤監(jiān)控系統(tǒng)webfunny前端監(jiān)控在錯誤分析功能上,可以準(zhǔn)確定位代碼問題所在位置。
前端監(jiān)控目標(biāo)前端監(jiān)控主要包含兩大塊:性能監(jiān)控及異常監(jiān)控保證穩(wěn)定性(異常監(jiān)控)錯誤監(jiān)控包括JavaScript代碼錯誤,Promsie錯誤,接口(XHR,fetch)錯誤,資源加載錯誤(script,link等)等,這些錯誤大多會導(dǎo)致頁面功能異常甚至白屏。提升用戶體驗(性能監(jiān)控)性能監(jiān)控包括頁面的加載時間,接口響應(yīng)時間等,側(cè)面反應(yīng)了用戶體驗的好壞。
3性能監(jiān)控3.1簡單描述頁面加載簡單看一下,從輸入url到頁面加載完成的過程如下:首先需要通過DNS(域名解析系統(tǒng))將URL解析為對應(yīng)的IP地址,然后與這個IP地址確定的那臺服務(wù)器建立起TCP網(wǎng)絡(luò)連接,隨后我們向服務(wù)端拋出HTTP請求,服務(wù)端處理完我們的請求之后,把目標(biāo)數(shù)據(jù)放在HTTP響應(yīng)里返回給客戶端,拿到響應(yīng)數(shù)據(jù)的瀏覽器就可以開始走一個渲染的流程。渲染完畢,頁面便呈現(xiàn)給了用戶。
三、性能指標(biāo)FP(FirstPaint):繪制時間,包括了任何用戶自定義的背景繪制,它是首先將像素繪制到屏幕的時刻。FCP(FirstContentPaint):內(nèi)容繪制。瀏覽器將個DOM渲染到屏幕的時間,可能是文本、圖像、SVG等。這其實就是白屏?xí)r間FMP(FirstMeaningfulPaint):有意義繪制。頁面有意義的內(nèi)容渲染的時間LCP(LargestContentfulPaint)。比較大內(nèi)容渲染。在viewport中比較大的頁面元素加載的時間。DCL(DomContentLoaded):DOM加載完成。當(dāng)HTML文檔被完全加載和解析完成之后,DOMContentLoaded事件被觸發(fā)。無需等待樣式表,圖像和子框架的完成加載。L(onload):當(dāng)依賴的資源全部加載完畢之后才會觸發(fā)。TTI(TimetoInteractive):可交互時間。用于標(biāo)記應(yīng)用已進行視覺渲染并能可靠響應(yīng)用戶輸入的時間點。FID(FirstInputDelay):輸入延遲。用戶和頁面交互(單擊鏈接、點擊按鈕等)到頁面響應(yīng)交互的時間。你是如何搭建 Web 前端性能監(jiān)控系統(tǒng)的?
整體大致可以分四個階段:信息采集、存儲、分析、監(jiān)控。采集階段:收集異常日志,先在本地做一定的處理,采取一定的方案上報到服務(wù)器。存儲階段:后端接收前端上報的異常日志,經(jīng)過一定處理,按照一定的存儲方案存儲。分析階段:分為機器自動分析和人工分析。機器自動分析,通過預(yù)設(shè)的條件和算法,對存儲的日志信息進行統(tǒng)計和篩選,發(fā)現(xiàn)問題,觸發(fā)報警。人工分析,通過提供一個可視化的數(shù)據(jù)面板,讓系統(tǒng)用戶可以看到具體的日志數(shù)據(jù),根據(jù)信息,發(fā)現(xiàn)異常問題根源。報警階段:分為告警和預(yù)警。告警按照一定的級別自動報警,通過設(shè)定的渠道,按照一定的觸發(fā)規(guī)則進行。預(yù)警則在異常發(fā)生前,提前預(yù)判,給出警告。性能監(jiān)控:使用ResourceTimingAPI和PerformanceTimingAPI,可以計算許多重要的指標(biāo),比如頁面性能統(tǒng)計的起始點時間、首屏?xí)r間等。異常監(jiān)控:前端捕獲異常分為全局捕獲和局部捕獲。局部捕獲作為補充,對某些特殊情況進行捕獲,但分散,不利于管理。所以,我會選擇全局捕獲的方式,即通過全局的接口,將捕獲代碼集中寫在一個地方。具體在實現(xiàn)項目中,我應(yīng)該會采用badjs-report,它重寫了進行上報異常,無需編寫任何捕獲錯誤的代碼。webfunny埋點系統(tǒng)可快速全鏈路數(shù)據(jù)接入,打破數(shù)據(jù)孤島,多角度洞察業(yè)務(wù),實現(xiàn)數(shù)據(jù)智能決策。國內(nèi)好用的前端監(jiān)控和前端行為分析方案
webfunny一體化埋點系統(tǒng):數(shù)據(jù)“采集+管理+分析”智能一體化,數(shù)據(jù)驅(qū)動業(yè)務(wù),讓埋點不再困難。國內(nèi)好用的前端監(jiān)控和前端行為分析方案
搭建前端監(jiān)控系統(tǒng)(七)之用戶細查篇一、如何貫穿用戶的整個行為鏈路?這個很好理解,貫穿用戶的整個行為鏈路,就需要一個單一的key來標(biāo)識這個用戶。比較簡單的就是使用UserId了,在通過webfunny前端監(jiān)控系統(tǒng)「用戶細查」的功能模塊,每個用戶我都給他傳入一個userId就可以了串聯(lián)起來了。但是這種方式有一個很容易被忽略的弊端:如果這個項目獲取userId速度比較慢,或者壓根不會有userId,那么用戶的行為記錄是不是會出現(xiàn)缺失呢?或者根本就無法關(guān)聯(lián)呢?那我們該如何規(guī)避這種問題呢?webfunny是如何做到的呢?為了規(guī)避以上提出的幾點問題,webfunny通過設(shè)置內(nèi)置id,來對所有的用戶進行區(qū)分。然后再通過userId,將所有的內(nèi)置id關(guān)聯(lián)在一起,這樣一來,只要在用戶的生命周期過程中,傳入一次userId,我們就可以關(guān)聯(lián)上用戶所有的行為記錄了。內(nèi)置ID生成規(guī)則的代碼,感興趣的前端同學(xué)可以到webfunny官網(wǎng)查看本篇博客原文。國內(nèi)好用的前端監(jiān)控和前端行為分析方案
上海觀縱科技有限公司是我國webfunny前端監(jiān)控,webfunny前端埋點,全鏈路應(yīng)用性能監(jiān)控,Argus-IT運維監(jiān)控專業(yè)化較早的有限責(zé)任公司之一,公司始建于2022-11-14,在全國各個地區(qū)建立了良好的商貿(mào)渠道和技術(shù)協(xié)作關(guān)系。觀縱科技致力于構(gòu)建傳媒、廣電自主創(chuàng)新的競爭力,將憑借高精尖的系列產(chǎn)品與解決方案,加速推進全國傳媒、廣電產(chǎn)品競爭力的發(fā)展。