國(guó)內(nèi)好用的前端監(jiān)控和前端行為分析方案

來源: 發(fā)布時(shí)間:2023-08-24

前端程序員如何明確定位、排查前端生產(chǎn)問題?二、分析錯(cuò)誤詳情通過webfunny前端監(jiān)控系統(tǒng),我們可以把線上的錯(cuò)誤日志統(tǒng)計(jì)出來了,那如何解析這些錯(cuò)誤日志呢。比如:解析出用戶的機(jī)型,版本,系統(tǒng)平臺(tái),影響范圍,以及具體的錯(cuò)誤位置,從而提高前端工程師解決問題的效率。方法能夠利用的功能都已經(jīng)用的差不多了,但是它真的可以幫我們定位和解決所有前端線上的問題嗎?線上能夠修復(fù)的問題,前端工程師肯定是遇到都在盡量修復(fù),但是前端線上的問題頻發(fā)。當(dāng)客服反饋一個(gè)問題,你發(fā)現(xiàn)沒有測(cè)試機(jī)型,無(wú)法復(fù)現(xiàn)用戶錯(cuò)誤的時(shí)候,讓你來修復(fù)這個(gè)問題,前端只能兩眼一抹黑無(wú)能為力。所以前端監(jiān)控的建設(shè)很有必要性。webfunny能夠輕松完成打點(diǎn)業(yè)務(wù)需求。webfunny還對(duì)埋點(diǎn)數(shù)據(jù)進(jìn)行了漏斗分析,清晰查看兩個(gè)埋點(diǎn)的留存率。國(guó)內(nèi)好用的前端監(jiān)控和前端行為分析方案

搭建前端監(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í)定位)好用的前端監(jiān)控和js錯(cuò)誤監(jiān)控系統(tǒng)webfunny前端監(jiān)控在錯(cuò)誤分析功能上,可以準(zhǔ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ù)端處理完我們的請(qǐng)求之后,把目標(biāo)數(shù)據(jù)放在HTTP響應(yīng)里返回給客戶端,拿到響應(yīng)數(shù)據(jù)的瀏覽器就可以開始走一個(gè)渲染的流程。渲染完畢,頁(yè)面便呈現(xiàn)給了用戶。

三、性能指標(biāo)FP(FirstPaint):繪制時(shí)間,包括了任何用戶自定義的背景繪制,它是首先將像素繪制到屏幕的時(shí)刻。FCP(FirstContentPaint):內(nèi)容繪制。瀏覽器將個(gè)DOM渲染到屏幕的時(shí)間,可能是文本、圖像、SVG等。這其實(shí)就是白屏?xí)r間FMP(FirstMeaningfulPaint):有意義繪制。頁(yè)面有意義的內(nèi)容渲染的時(shí)間LCP(LargestContentfulPaint)。比較大內(nèi)容渲染。在viewport中比較大的頁(yè)面元素加載的時(shí)間。DCL(DomContentLoaded):DOM加載完成。當(dāng)HTML文檔被完全加載和解析完成之后,DOMContentLoaded事件被觸發(fā)。無(wú)需等待樣式表,圖像和子框架的完成加載。L(onload):當(dāng)依賴的資源全部加載完畢之后才會(huì)觸發(fā)。TTI(TimetoInteractive):可交互時(shí)間。用于標(biāo)記應(yīng)用已進(jìn)行視覺渲染并能可靠響應(yīng)用戶輸入的時(shí)間點(diǎn)。FID(FirstInputDelay):輸入延遲。用戶和頁(yè)面交互(單擊鏈接、點(diǎn)擊按鈕等)到頁(yè)面響應(yīng)交互的時(shí)間。你是如何搭建 Web 前端性能監(jiān)控系統(tǒng)的?

整體大致可以分四個(gè)階段:信息采集、存儲(chǔ)、分析、監(jiān)控。采集階段:收集異常日志,先在本地做一定的處理,采取一定的方案上報(bào)到服務(wù)器。存儲(chǔ)階段:后端接收前端上報(bào)的異常日志,經(jīng)過一定處理,按照一定的存儲(chǔ)方案存儲(chǔ)。分析階段:分為機(jī)器自動(dòng)分析和人工分析。機(jī)器自動(dòng)分析,通過預(yù)設(shè)的條件和算法,對(duì)存儲(chǔ)的日志信息進(jìn)行統(tǒng)計(jì)和篩選,發(fā)現(xiàn)問題,觸發(fā)報(bào)警。人工分析,通過提供一個(gè)可視化的數(shù)據(jù)面板,讓系統(tǒng)用戶可以看到具體的日志數(shù)據(jù),根據(jù)信息,發(fā)現(xiàn)異常問題根源。報(bào)警階段:分為告警和預(yù)警。告警按照一定的級(jí)別自動(dòng)報(bào)警,通過設(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ì)選擇全局捕獲的方式,即通過全局的接口,將捕獲代碼集中寫在一個(gè)地方。具體在實(shí)現(xiàn)項(xiàng)目中,我應(yīng)該會(huì)采用badjs-report,它重寫了進(jìn)行上報(bào)異常,無(wú)需編寫任何捕獲錯(cuò)誤的代碼。webfunny埋點(diǎn)系統(tǒng)可快速全鏈路數(shù)據(jù)接入,打破數(shù)據(jù)孤島,多角度洞察業(yè)務(wù),實(shí)現(xiàn)數(shù)據(jù)智能決策。國(guó)內(nèi)好用的前端監(jiān)控和前端行為分析方案

webfunny一體化埋點(diǎn)系統(tǒng):數(shù)據(jù)“采集+管理+分析”智能一體化,數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù),讓埋點(diǎn)不再困難。國(guó)內(nèi)好用的前端監(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)缺失呢?或者根本就無(wú)法關(guān)聯(lián)呢?那我們?cè)撊绾我?guī)避這種問題呢?webfunny是如何做到的呢?為了規(guī)避以上提出的幾點(diǎn)問題,webfunny通過設(shè)置內(nèi)置id,來對(duì)所有的用戶進(jìn)行區(qū)分。然后再通過userId,將所有的內(nèi)置id關(guān)聯(lián)在一起,這樣一來,只要在用戶的生命周期過程中,傳入一次userId,我們就可以關(guān)聯(lián)上用戶所有的行為記錄了。內(nèi)置ID生成規(guī)則的代碼,感興趣的前端同學(xué)可以到webfunny官網(wǎng)查看本篇博客原文。國(guó)內(nèi)好用的前端監(jiān)控和前端行為分析方案

上海觀縱科技有限公司是我國(guó)webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控專業(yè)化較早的有限責(zé)任公司之一,公司始建于2022-11-14,在全國(guó)各個(gè)地區(qū)建立了良好的商貿(mào)渠道和技術(shù)協(xié)作關(guān)系。觀縱科技致力于構(gòu)建傳媒、廣電自主創(chuàng)新的競(jìng)爭(zhēng)力,將憑借高精尖的系列產(chǎn)品與解決方案,加速推進(jìn)全國(guó)傳媒、廣電產(chǎn)品競(jìng)爭(zhēng)力的發(fā)展。