說到監(jiān)控,大家時(shí)間想到的肯定是Zabbix、Nagios等各種強(qiáng)大的后端監(jiān)控服務(wù)。
誠然,這些強(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)控方案并不是什么難事——通過全局的事件捕獲到運(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ā)所打造。通過前端監(jiān)控系統(tǒng),可以實(shí)時(shí)監(jiān)控前端性能,還實(shí)時(shí)分析前端健康狀態(tài)。有哪些開源的前端監(jiān)控和前端行為分析工具
前端程序員如何明確定位、排查前端生產(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ī)型,無法復(fù)現(xiàn)用戶錯(cuò)誤的時(shí)候,讓你來修復(fù)這個(gè)問題,前端只能兩眼一抹黑無能為力。所以前端監(jiān)控的建設(shè)很有必要性。國內(nèi)好用的前端監(jiān)控和頁面性能監(jiān)控平臺(tái)webfunny前端一體化埋點(diǎn)系統(tǒng),可按項(xiàng)目設(shè)定不同的模型看板,設(shè)定人員權(quán)限,滿足多種數(shù)據(jù)分析需求。
前端監(jiān)控通常情況下監(jiān)控的內(nèi)容可以分為三類:一,js錯(cuò)誤。js錯(cuò)誤又分大概四種:一是uncaughterror,這種錯(cuò)誤通常情況下發(fā)生在我們的開發(fā)過程中。理論上不需要我們進(jìn)行上報(bào)。二是jsruntimeerror,這種錯(cuò)誤會(huì)觸發(fā)事件,我們可以通過onerror事件,獲取到相關(guān)的信息進(jìn)行上報(bào)。三是資源錯(cuò)誤,比如圖片加載失敗等,它也會(huì)觸發(fā)error事件。四是unhandledregection錯(cuò)誤,這種錯(cuò)誤由promise觸發(fā),我們可以onunhandledrejection方法獲取相關(guān)信息進(jìn)行上報(bào)
前端程序員如何明確定位、排查前端生產(chǎn)問題?比如在分析錯(cuò)誤詳情時(shí),遇到線上用戶進(jìn)過了復(fù)雜的鏈接跳轉(zhuǎn)而發(fā)生了錯(cuò)誤;用戶調(diào)用的接口發(fā)生了異?;蛘叱瑫r(shí);線上的用戶反饋異常根本就跟實(shí)際情況不符等等。這些非直觀型的問題該如何解決?這時(shí)候前端工程師就需要用戶的行為記錄。三、記錄用戶的跳轉(zhuǎn)行為(Demo)有些錯(cuò)誤是前端頁面經(jīng)過復(fù)雜的跳轉(zhuǎn)、回退之后才發(fā)生的,就算測(cè)試人員也很難測(cè)試出這種問題,因?yàn)榫€上的用戶的任何行為都有可能出現(xiàn)。往往我們知道的只是他在后面停留的頁面發(fā)生了錯(cuò)誤。如此,我們通過webfunny前端監(jiān)控系統(tǒng)來記錄下用戶的跳轉(zhuǎn)日志,就能夠復(fù)現(xiàn)出用戶的行為,從而復(fù)現(xiàn)BUG來解決。webfunny埋點(diǎn)系統(tǒng)可快速全鏈路數(shù)據(jù)接入,打破數(shù)據(jù)孤島,多角度洞察業(yè)務(wù),實(shí)現(xiàn)數(shù)據(jù)智能決策。
搭建前端監(jiān)控系統(tǒng)(三)靜態(tài)資源加載監(jiān)控篇前端監(jiān)控除了如何做JS錯(cuò)誤監(jiān)控,還有一種錯(cuò)誤是靜態(tài)資源加載報(bào)錯(cuò),很多時(shí)候資源加載報(bào)錯(cuò)對(duì)前端項(xiàng)目來說是致命的,因?yàn)殪o態(tài)資源加載出錯(cuò)了,有可能就會(huì)導(dǎo)致前端頁面無法渲染,用戶就只能對(duì)著一個(gè)空白屏幕發(fā)呆,不知所措。因?yàn)橥蝗挥刑?,我們的前端線上環(huán)境爆出了大量的白屏錯(cuò)誤,經(jīng)過很長(zhǎng)時(shí)間的排查,終于定位到問題原因:我們使用的CDN路徑不知道怎么的,把我們的https協(xié)議全部指向了http協(xié)議,在安全協(xié)議下無法訪問非安全協(xié)議的資源,導(dǎo)致了大量的白屏。所以我決定增加靜態(tài)資源監(jiān)控功能,以應(yīng)對(duì)未來的未知情況。絕大多數(shù)的監(jiān)控平臺(tái)都提供規(guī)則報(bào)警的能力。前端監(jiān)控和前端行為分析軟件
webfunny前端監(jiān)控系統(tǒng)的用戶細(xì)查功能:是深入分析每個(gè)用戶,記錄用戶的所有行為。有哪些開源的前端監(jiān)控和前端行為分析工具
三、性能指標(biāo)FP(FirstPaint):繪制時(shí)間,包括了任何用戶自定義的背景繪制,它是首先將像素繪制到屏幕的時(shí)刻。FCP(FirstContentPaint):內(nèi)容繪制。瀏覽器將個(gè)DOM渲染到屏幕的時(shí)間,可能是文本、圖像、SVG等。這其實(shí)就是白屏?xí)r間FMP(FirstMeaningfulPaint):有意義繪制。頁面有意義的內(nèi)容渲染的時(shí)間LCP(LargestContentfulPaint)。比較大內(nèi)容渲染。在viewport中比較大的頁面元素加載的時(shí)間。DCL(DomContentLoaded):DOM加載完成。當(dāng)HTML文檔被完全加載和解析完成之后,DOMContentLoaded事件被觸發(fā)。無需等待樣式表,圖像和子框架的完成加載。L(onload):當(dāng)依賴的資源全部加載完畢之后才會(huì)觸發(fā)。TTI(TimetoInteractive):可交互時(shí)間。用于標(biāo)記應(yīng)用已進(jìn)行視覺渲染并能可靠響應(yīng)用戶輸入的時(shí)間點(diǎn)。FID(FirstInputDelay):輸入延遲。用戶和頁面交互(單擊鏈接、點(diǎn)擊按鈕等)到頁面響應(yīng)交互的時(shí)間。有哪些開源的前端監(jiān)控和前端行為分析工具
上海觀縱科技有限公司主營品牌有webfunny,walkingfunny,argus,發(fā)展規(guī)模團(tuán)隊(duì)不斷壯大,該公司服務(wù)型的公司。公司是一家有限責(zé)任公司企業(yè),以誠信務(wù)實(shí)的創(chuàng)業(yè)精神、專業(yè)的管理團(tuán)隊(duì)、踏實(shí)的職工隊(duì)伍,努力為廣大用戶提供***的產(chǎn)品。以滿足顧客要求為己任;以顧客永遠(yuǎn)滿意為標(biāo)準(zhǔn);以保持行業(yè)優(yōu)先為目標(biāo),提供***的webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控。觀縱科技自成立以來,一直堅(jiān)持走正規(guī)化、專業(yè)化路線,得到了廣大客戶及社會(huì)各界的普遍認(rèn)可與大力支持。