精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

2022年再不知道前端監(jiān)控就OUT了

開發(fā) 前端
前端監(jiān)控的第一個步驟就是數(shù)據(jù)采集,采集的信息包含環(huán)境信息、性能信息、異常信息、業(yè)務信息。

前端監(jiān)控現(xiàn)狀

近年來,前端監(jiān)控是越來越火,目前已經(jīng)有很多成熟的產(chǎn)品供我們選擇使用,如下圖所示

有這么多監(jiān)控平臺,那為什么還要學習自研前端監(jiān)控?

  • 一方面人家是要錢的。
  • 另一方面自己的項目需要定制化的功能。

前端監(jiān)控的目的

  1. 提升用戶體驗。
  2. 更快的發(fā)現(xiàn)發(fā)現(xiàn)異常、定位異常、解決異常。
  3. 了解業(yè)務數(shù)據(jù),指導產(chǎn)品升級——數(shù)據(jù)驅動的思想。

前端監(jiān)控的流程

采集

前端監(jiān)控的第一個步驟就是數(shù)據(jù)采集,采集的信息包含環(huán)境信息、性能信息、異常信息、業(yè)務信息。

環(huán)境信息

環(huán)境信息是每個監(jiān)控系統(tǒng)必備的內容,畢竟排查問題的時候需要知道來自哪個頁面、瀏覽器是誰、操作用戶是誰……,這樣才能快速定位問題,解決問題。一般這些常見的環(huán)境信息主要包含:

  • url:正在監(jiān)控的頁面,該頁面可能會出現(xiàn)性能、異常問題。獲取方式為:
  • window.location.href.
  • ua:訪問該頁面時該用戶的userAgent信息,包含操作系統(tǒng)和瀏覽器的類型、版本等。獲取方式為:
  • window.navigator.userAgent
  • token:記錄當前用戶是誰。通過記錄該用戶是誰。
  • 一方面方便將該用戶的所有監(jiān)控信息建立聯(lián)系,方便數(shù)據(jù)分析;
  • 另一方面通過該標識可以查看該用戶的所有操作,方便復現(xiàn)問題。

性能信息

頁面的性能直接影響了用戶留存率,,Google DoubleClick 研究表明:如果一個移動端頁面加載時長超過 3 秒,用戶就會放棄而離開。BBC 發(fā)現(xiàn)網(wǎng)頁加載時長每增加 1 秒,用戶就會流失 10%。,Google DoubleClick 研究表明:如果一個移動端頁面加載時長超過 3 秒,用戶就會放棄而離開。BBC 發(fā)現(xiàn)網(wǎng)頁加載時長每增加 1 秒,用戶就會流失 10%。所以我們的追求就是提高頁面的性能,為了提高性能需要監(jiān)控哪些指標呢?

指標分類

指標有很多,我總結為以下兩個方面:網(wǎng)絡層面和頁面展示層面。

網(wǎng)絡層面

從網(wǎng)絡層面來看涉及的指標有:重定向耗時、DNS解析耗時、TCP連接耗時、SSL耗時、TTFB網(wǎng)絡請求耗時、數(shù)據(jù)傳輸耗時、資源加載耗時……,各個指標的解釋如下表所示:

頁面展示層面

頁面展示層面的指標是針對用戶體驗提出的幾個指標,包含F(xiàn)P、FCP、LCP、FMP、DCL、L等,這幾個指標其實就是chrome瀏覽器中performance模塊的指標(如圖所示)。

各個指標的解釋如下表所示。

指標求解

上述這么多指標該怎么獲取呢?瀏覽器給我們留了相應的接口——神奇的window.performance,通過該接口可以獲取一些列與性能相關的參數(shù),下面以https://baidu.com 為例來看一下與這些指標相關的參數(shù):

window.performance中的timing屬性中的內容不就是為了求解上述指標所需要的值嗎?看著上面的屬性值再對應下面的performance訪問流程圖,整個過程是不是一目了然。

有了上面的值我們就一起求解上述的指標:

網(wǎng)絡層面

頁面展示層面

Google工程師一直在推動以用戶為中心的性能指標,所以頁面展示層面的變化較大,求解方式稍有不同:

FP和FCP

通過window.performance.getEntriesByType(‘paint’)的方式獲取。

const paint = window.performance.getEntriesByType('paint');
const FP = paint[0].startTime,
const FCP = paint[1].startTime,

LCP

function getLCP() {
// 增加一個性能條目的觀察者
new PerformanceObserver((entryList, observer) => {
let entries = entryList.getEntries();
const lastEntry = entries[entries.length - 1];
observer.disconnect();
console.log('LCP', lastEntry.renderTime || lastEntry.loadTime);
}).observe({entryTypes: ['largest-contentful-paint']});
}

FMP

function getFMP() {
let FMP;
new PerformanceObserver((entryList, observer) => {
let entries = entryList.getEntries();
observer.disconnect();
console.log('FMP', entries);
}).observe({entryTypes: ['element']});
}

DCL

domContentLoadEventEndfetchStart

L

loadEventStartfetchStart

TTI

domInteractivefetchStart

FID

function getFID() {
new PerformanceObserver((entryList, observer) => {
let firstInput = entryList.getEntries()[0];
if (firstInput) {
const FID = firstInput.processingStart - firstInput.startTime;
console.log('FID', FID);
}
observer.disconnect();
}).observe({type: 'first-input', buffered: true});
}

異常信息

對于網(wǎng)站來說,異常信息是最致命、最影響用戶體驗的問題,需要重點監(jiān)控。對于異常信息可以分為兩類:運行時錯誤、接口錯誤。下面就分別來嘮一嘮這兩類錯誤。

運行時錯誤

當JavaScript運行時有可能會發(fā)生錯誤,可歸類為七種:語法錯誤、類型錯誤、范圍錯誤、引用錯誤、eval錯誤、URL錯誤、資源加載錯誤。為了捕獲代碼錯誤,需要考慮兩類場景:非Promise場景和Promise場景,因為兩種場景捕獲錯誤的策略不同。

非Promise場景

非Promise場景可通過監(jiān)聽error事件來捕獲錯誤。對于error事件捕獲的錯誤分為兩類:資源錯誤和代碼錯誤。資源錯誤指的就是js、css、img等未加載,該錯誤只能在捕獲階段獲取到,且為資源錯誤時event.target.localName存在值(用此區(qū)分資源錯誤與代碼錯誤);代碼錯誤指的就是語法錯誤、類型錯誤等這一類錯誤,可以獲取代碼錯誤的信息、堆棧等,用于排查錯誤。

export function listenerError() {
window.addEventListener('error', (event) => {
if (event.target.localName) {
console.log('這是資源錯誤', event);
}
else {
console.log('這是代碼錯誤', event);
}
}, true)
}

Promise場景

Promise場景的處理方式有所不同,當Promise被reject且沒有reject處理器的時候,會觸發(fā)unhandlerejection事件,所以通過監(jiān)聽unhandlerejection的事件來捕獲錯誤。

export function listenerPromiseError() {
window.addEventListener('unhandledrejection', (event) => {
console.log('這是Promise場景中錯誤', event);
})
}

接口錯誤

對于瀏覽器來說,所有的接口均是基于XHR和Fetch實現(xiàn)的,為了捕獲接口中的錯誤,可以通過重寫該方法,然后通過接口返回的信息來判斷當前接口的狀況,下面以XHR為例來展示封裝過程。

function newXHR() {
const XMLHttpRequest = window.XMLHttpRequest;
const oldXHROpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = (method, url, async) => {
// 做一些自己的數(shù)據(jù)上報操作
return oldXHROpen.apply(this, arguments);
}
const oldXHRSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = (body) => {
// 做一些自己的數(shù)據(jù)上報操作
return oldXHRSend.apply(this, arguments);
}
}

業(yè)務信息

每個產(chǎn)品都會有自己的業(yè)務信息,例如用戶在線時長、pv、uv、用戶分布等,通過獲取這些業(yè)務信息才能更加清楚的了解目前產(chǎn)品的狀況,以便產(chǎn)品經(jīng)理更好的去規(guī)劃產(chǎn)品的未來方向。由于每個產(chǎn)品業(yè)務信息多種多樣,小伙伴本可以按照自己的需求進行撰寫代碼,此處我就不再贅述。

上報

對于上報的方式無外乎兩種:一種是Ajax的方式上報;另一種是通過Image的形式進行上報。目前很多大廠采用的上報方式均是通過一個1*1像素的的gif圖片進行上報,既然人家都采用該種策略,那我們就來嘮一嘮下面兩個問題。

為什么采用Image的方式上報?

  1. 沒有跨域問題。因為數(shù)據(jù)服務器和后端服務器大概率是不同的域名,若采用Ajax的方式進行處理還要處理跨域問題,否則數(shù)據(jù)會被瀏覽器攔截。
  2. 不會阻塞頁面加載,只需new Image對象即可。

圖片類型很多,為什么采用gif這種格式進行上報?

其實歸結為一個字——小。對于1*1px的圖片,BMP結構的文件需要74字節(jié),PNG結構的文件需要67字節(jié),GIF結構的文件只需要43字節(jié)。同樣的響應,GIF可以比BMP節(jié)約41%的流量,比PNG節(jié)約35%的流量,所以選擇gif進行上報。

分析

日志上報之后需要進行清洗,獲取自己所需要內容,并將分析內容進行存儲。根據(jù)數(shù)據(jù)量的大小可分為兩種方式:單機和集群。

單機

訪問量小、日志少的網(wǎng)站可以采用單機的方式對數(shù)據(jù)進行分析,例如用node讀取日志文件,然后通過日志文件中獲取所需要的信息,最終將處理的信息存儲到數(shù)據(jù)庫中。

集群

很多產(chǎn)品的訪問量很大,日志很多,此時就需要利用Hadoop進行分布式處理,獲取最終處理結果,其處理流程圖如下所示:

根據(jù)自己的日志量級決定自己的分析方式,合適的就是最好的,不用一味追求最優(yōu)的、最先進的處理方式。

報警

當異常類型超多一定閾值之后需要進行報警通知,讓對應的工作人員去處理問題,及時止損。根據(jù)報警的級別不同,可以選擇不同的報警方式。

  1. 郵件——普通報警。
  2. 短信——嚴重報警,已影響部分業(yè)務。
  3. 電話——特別嚴重,例如系統(tǒng)已宕機。
責任編輯:姜華 來源: 前端點線面
相關推薦

2017-12-19 23:12:53

2019-12-24 09:49:02

微軟英語瀏覽器

2017-01-19 09:41:29

2020-03-05 08:00:05

分布式事務數(shù)據(jù)庫

2017-12-14 14:38:56

物聯(lián)網(wǎng)網(wǎng)絡技術機器學習

2018-01-15 10:51:42

2017-02-23 15:13:29

網(wǎng)絡安全技術周刊

2021-07-26 05:17:39

Linux PosixLinux 系統(tǒng)

2021-10-08 06:10:43

前端技術Vue

2019-04-11 09:37:50

2018-07-25 17:05:25

Windows電腦數(shù)碼

2023-01-02 10:08:42

StampedLocAQS框架

2021-12-02 22:45:44

計算

2018-12-06 09:12:58

2015-12-08 11:08:00

戴爾云計算

2022-10-12 08:22:44

Guava工具Collection

2019-10-28 08:44:29

Code Review代碼團隊

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket瀏覽器

2022-10-28 21:29:55

前端藍牙心率帶
點贊
收藏

51CTO技術棧公眾號

国产成人亚洲欧洲在线| 成人免费黄色av| 777电影在线观看| 精品一区二区三区久久久| 欧美美女15p| 日本少妇xxxx| 国产精品原创视频| 亚洲自拍偷拍网站| 视频一区二区三区免费观看| 99热精品在线播放| 亚洲在线播放| 日韩在线观看高清| 影音先锋黄色资源| av国产精品| 欧美日韩国产综合新一区| 亚洲国产精品一区在线观看不卡| av老司机久久| 日韩成人精品在线| 国产综合在线看| 激情五月激情综合| 久久99国内| 精品国产一区二区精华| 91欧美视频在线| 蜜桃av在线| 一区二区三区不卡在线观看| 性欧美videosex高清少妇| 婷婷视频在线观看| 国产一区二区影院| 国产精品亚洲片夜色在线| 亚洲精品1区2区3区| 牛牛国产精品| 色先锋资源久久综合5566| 泷泽萝拉在线播放| 国产精品毛片视频| 日韩欧美激情四射| 国产免费中文字幕| 久久福利在线| 欧美无砖砖区免费| 欧美日韩在线成人| 亚洲精品永久免费视频| 亚洲444eee在线观看| 色哟哟免费网站| 国产激情视频在线| 国产精品久久久久久久岛一牛影视| 蜜桃av色综合| 午夜成人鲁丝片午夜精品| 北岛玲一区二区三区四区| 97netav| 国产视频aaa| 狠狠色丁香久久婷婷综| 国产精品一区二区女厕厕| 中文字幕丰满人伦在线| 欧美a一区二区| 国产精品激情av电影在线观看| 亚洲图片在线视频| 久久国产精品久久久久久电车| 欧美综合激情网| 日韩欧美在线观看免费| 久久精品三级| 国产精品普通话| 中文字幕+乱码+中文| 欧美aaaaaa午夜精品| 国产一区二区在线免费视频| 在线不卡免费视频| 狠狠久久亚洲欧美| 国产69精品久久久久9999apgf| 亚洲乱码在线观看| 9人人澡人人爽人人精品| 麻豆亚洲一区| 福利视频在线看| 中文字幕一区免费在线观看| 国产日本欧美在线| 成人在线免费观看黄色| 精品久久久久久国产| 久久久一本二本三本| 香蕉视频亚洲一级| 欧美色视频在线| 国产毛片久久久久久| 最新国产精品精品视频| 日韩av在线高清| 美国黑人一级大黄| 欧美日本中文| 欧美整片在线观看| 91久久精品国产91性色69| 国产精品996| 久久国产精品 国产精品| 国产在线免费观看| 亚洲免费成人av| 夫妻免费无码v看片| 97精品国产综合久久久动漫日韩| 91精品国产高清一区二区三区| 性农村xxxxx小树林| 国产91久久精品一区二区| 精品久久久av| 国产日产精品一区二区三区| 久久电影网电视剧免费观看| 国产精品视频一区二区三区经| 久草福利在线| 亚洲一区二区四区蜜桃| 国产精品无码av无码| 国产一区二区三区免费观看在线 | 一本一道精品欧美中文字幕| 国产一区二区三区免费播放| 蜜桃91精品入口| a级网站在线播放| 在线视频欧美区| 在线观看一区二区三区四区| 成人综合久久| 性欧美xxxx视频在线观看| 国产精品自拍电影| 久久精品免费在线观看| 丰满少妇大力进入| 成人影院网站ww555久久精品| 日韩精品视频免费在线观看| 2018天天弄| 日本不卡的三区四区五区| 国产乱码精品一区二区三区日韩精品| аⅴ资源新版在线天堂| 黄网动漫久久久| 亚洲av毛片在线观看| 欧洲杯足球赛直播| 欧洲成人午夜免费大片| www夜片内射视频日韩精品成人| 国产三级精品三级| 日韩av一二三四区| 国产精品zjzjzj在线观看| 俺去亚洲欧洲欧美日韩| 中文字幕乱码视频| 久久久久久久久久久久久久久99| 久草免费福利在线| 久久在线观看| 久久久久北条麻妃免费看| 久久国产香蕉视频| 国产欧美日本一区视频| 丝袜老师办公室里做好紧好爽| 大香伊人久久精品一区二区| 欧美精品免费在线| 99国产精品久久久久99打野战| 国产精品三级av在线播放| 热久久精品国产| 国产探花一区| 国产精品国产三级国产专播精品人| 亚洲色图 校园春色| 性久久久久久久久| 国产精品麻豆入口| 99国产精品| 久久久久一区二区| 午夜裸体女人视频网站在线观看| 亚洲аv电影天堂网| 久久久久久久久久综合| 夫妻av一区二区| 日本阿v视频在线观看| 国产精品自在| 国产91成人video| 青春草在线观看| 91黄色免费网站| 蜜桃av免费观看| 黄色日韩网站视频| 2022中文字幕| 卡通动漫精品一区二区三区| 97avcom| 国产经典自拍视频在线观看| 在线国产电影不卡| 国产三级aaa| 国产乱国产乱300精品| 免费看日本黄色| 日本中文字幕在线一区| 日韩暖暖在线视频| 日本暖暖在线视频| 日韩欧美国产综合一区| 在线看成人av| 久久久精品日韩欧美| 色片在线免费观看| 欧美fxxxxxx另类| 精品一区二区国产| 成人黄色图片网站| 欧美大码xxxx| 国产永久免费高清在线观看视频| 欧美色图免费看| 久久精品视频久久| 久久老女人爱爱| 免费黄频在线观看| 国产精品视区| 在线观看视频黄色| 秋霞在线一区| 国产日韩在线看片| 国产在线观看www| 少妇久久久久久| 欧美一级免费片| 在线视频中文字幕一区二区| 爱爱视频免费在线观看| 91色综合久久久久婷婷| 中文av一区二区三区| 欧美日韩精品| 日韩在线观看电影完整版高清免费 | 自拍偷自拍亚洲精品播放| zjzjzjzjzj亚洲女人| 日韩va欧美va亚洲va久久| 欧美高清中文字幕| 成人激情免费视频| 精品在线视频一区二区| 一级欧美视频| 国产成人在线精品| 久久五月精品中文字幕| 丝袜美腿亚洲一区二区| 亚洲AV成人无码一二三区在线| 91精品免费在线| 亚洲av无码不卡| 无码av免费一区二区三区试看| 国产中文字幕久久| 久久精品人人爽人人爽| 色婷婷狠狠18禁久久| 美女在线视频一区| 97视频在线免费播放| 欧美三级在线| 欧美xxxx吸乳| 成人羞羞动漫| 欧美一区二区视频17c| 999国产精品一区| 成人亚洲激情网| 99re久久| 日韩女优在线播放| 成入视频在线观看| 九九热最新视频//这里只有精品| av资源种子在线观看| 亚洲另类图片色| 午夜视频在线免费播放| 欧美成人aa大片| 国产成人精品无码高潮| 欧美日韩国产首页在线观看| 日韩 国产 欧美| 色婷婷综合久久久中文一区二区| 国产精品111| 亚洲综合丁香婷婷六月香| 欧美大片xxxx| 自拍偷拍欧美激情| 永久免费看mv网站入口| 中国av一区二区三区| 美女100%露胸无遮挡| 91麻豆精东视频| 中文字幕高清视频| 久久久久久黄色| 国产精品免费无码| 国产喂奶挤奶一区二区三区| 三级网站在线免费观看| 久久久久久免费| 欧美特级黄色录像| 国产日韩欧美不卡| 国产黄色大片免费看| 欧美国产精品一区| 四虎影视一区二区| 亚洲少妇屁股交4| 日韩一级片av| 亚洲一区av在线| 日韩视频免费观看高清| 欧美视频在线看| 国产主播第一页| 欧美日韩亚洲国产综合| 一二三四区在线| 欧美一区二区播放| 免费av网站在线播放| 日韩av一区二区在线| 国产一区二区影视| 色老头一区二区三区| 在线观看av免费| 性色av香蕉一区二区| 亚洲午夜天堂| 国产欧美一区二区三区久久| 9.1麻豆精品| 国产麻豆乱码精品一区二区三区| 欧美在线关看| 亚洲国产一区在线| 国产精品www994| 免费黄色日本网站| 久久99精品久久久| 国产高潮失禁喷水爽到抽搐| 久久影院电视剧免费观看| 欧美巨胸大乳hitomi| 亚洲激情第一区| 丁香六月婷婷综合| 51精品国自产在线| 无码国产伦一区二区三区视频 | 欧美天天综合网| 午夜精品久久久久久久99 | 欧美jizzhd欧美| 久久久久久有精品国产| 成人黄色免费短视频| 亚洲综合av影视| 竹菊久久久久久久| 中国 免费 av| 午夜影院日韩| 黄色片免费网址| 久久综合五月天婷婷伊人| 九九热视频在线免费观看| 好吊成人免视频| 国产绿帽刺激高潮对白| 日韩精品欧美国产精品忘忧草| 麻豆免费在线观看| 青青草精品毛片| 一区二区日韩| 色噜噜一区二区| 国产精品一国产精品k频道56| 亚洲精品久久久久久宅男| 99久久精品国产一区二区三区| 美女三级黄色片| 黑人巨大精品欧美一区二区一视频 | 亚洲成人av片在线观看| 在线日本视频| 日本成熟性欧美| 国产精品极品在线观看| 天堂av在线中文| 蜜桃传媒麻豆第一区在线观看| 亚洲一级av无码毛片精品| 日韩理论片在线| 日韩欧美一级大片| 精品小视频在线| 国内高清免费在线视频| 114国产精品久久免费观看| 欧洲激情综合| 成人一区二区三| 99久久亚洲一区二区三区青草| 久久久久久久久毛片| 欧美精品丝袜中出| 川上优的av在线一区二区| 2020欧美日韩在线视频| 国产劲爆久久| 国产一区二区片| 成人一区二区三区在线观看| 婷婷伊人五月天| 欧美一级二级三级蜜桃| 麻豆传媒视频在线| 91精品久久久久久久久青青| 日韩免费一区| 欧美三级午夜理伦三级富婆| 日本一区二区不卡视频| 中文字幕有码无码人妻av蜜桃| 亚洲人成人99网站| 日韩免费va| 日韩三级电影免费观看| 日韩av在线免费观看不卡| 久久国产精品影院| 91国产福利在线| 国产视频第一页在线观看| 国产精品久久久久av免费| 精品久久国产| 亚洲天堂2018av| 国产精品欧美精品| 一级黄色片免费看| xxxxx成人.com| 玖玖玖视频精品| 日本阿v视频在线观看| 91丨九色丨蝌蚪富婆spa| 日韩毛片一区二区三区| 亚洲欧美自拍一区| 国产第一精品| 国产成人免费高清视频| 国产成人午夜视频| 日本在线观看中文字幕| 日韩成人xxxx| 成人午夜亚洲| 警花观音坐莲激情销魂小说| 成人动漫视频在线| 欧美 日韩 精品| 中文字幕亚洲欧美一区二区三区| 精品乱码一区二区三区四区| 成人性做爰片免费视频| 成人激情小说网站| 免费看一级视频| 久久好看免费视频| 9l视频自拍蝌蚪9l视频成人| 国产在线精品91| 国产精品色婷婷| 丰满熟妇人妻中文字幕| 国产成一区二区| 中文字幕亚洲精品乱码| 日韩综合第一页| 欧美性受xxxx| 色呦呦网站在线观看| 久久久影院一区二区三区| 麻豆国产91在线播放| 久久99久久98精品免观看软件| 日韩精品视频在线播放| 日本在线一区二区| 3d动漫一区二区三区| 国产精品久久久久7777按摩| 成人毛片在线精品国产| 日av在线播放中文不卡| 亚洲香蕉av| av网站免费在线播放| 欧美日韩不卡一区| √最新版天堂资源网在线| 色综合久久av| 成人免费的视频| 91女人18毛片水多国产| 97不卡在线视频| 在线中文字幕亚洲| 91资源在线播放| 亚洲第一精品夜夜躁人人躁| 成人在线视频观看| 亚洲 高清 成人 动漫|