簡介
sunshine-track 應(yīng)用于前端監(jiān)控, 基于 行為上報,實現(xiàn)了 用戶行為、錯誤監(jiān)控、頁面跳轉(zhuǎn)、頁面白屏檢測、頁面性能檢測等上報功能。適用于 Vue、React、Angular 等框架l3y28資訊網(wǎng)——每日最新資訊28at.com
本項目源碼:https://github.com/sanxin-lin/sunshine-track。各位兄弟姐妹如果覺得喜歡的話,可以點個 star 哦~l3y28資訊網(wǎng)——每日最新資訊28at.com
功能
sunshine-track具備以下功能:l3y28資訊網(wǎng)——每日最新資訊28at.com
- ? 用戶行為上報:包括 點擊、跳轉(zhuǎn)頁面、跳轉(zhuǎn)頁面記錄數(shù)組、請求 等
- ? 用戶手動上報:提供 Vue 自定義指令 以及add、report函數(shù),實現(xiàn)用戶手動上報
- ? 自定義上報:提供 格式化上報數(shù)據(jù)、自定義上報函數(shù)、自定義決定上不上報 等配置項,更靈活地上報數(shù)據(jù)
- ? 請求數(shù)據(jù)上報:提供 檢測請求返回、過濾請求 等配置項,讓用戶決定上報哪些請求數(shù)據(jù)
- ? 上報方式:提供 上報方式 配置項,用戶可選擇 img、http、beacon 三種方式,http方式又支持 xhr、fetch 兩種,且支持 自定義headers
- ? 上報數(shù)據(jù)緩存:可配置 本地緩存、瀏覽器本地緩存、IndexedDB 三種方式
- ? 上報數(shù)據(jù)閾值:可配置上報數(shù)據(jù) 閾值 ,達到 閾值 后進行上報操作
- ? 全局點擊上報:可通過配置 選擇器、元素文本,對全局DOM節(jié)點進行點擊上報
- ? 頁面的性能檢測,包括 白屏、FP、FCP、LCP、CLS、TTFB、FID 等
上報數(shù)據(jù)格式
選項 l3y28資訊網(wǎng)——每日最新資訊28at.com | 描述 l3y28資訊網(wǎng)——每日最新資訊28at.com | 類型 l3y28資訊網(wǎng)——每日最新資訊28at.com |
uuid l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報數(shù)據(jù)的id l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
type l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報數(shù)據(jù)的類型 l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
data l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報數(shù)據(jù) l3y28資訊網(wǎng)——每日最新資訊28at.com | any l3y28資訊網(wǎng)——每日最新資訊28at.com
|
time l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報時間 l3y28資訊網(wǎng)——每日最新資訊28at.com | number l3y28資訊網(wǎng)——每日最新資訊28at.com
|
status l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報狀態(tài) l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
domain l3y28資訊網(wǎng)——每日最新資訊28at.com
| 當(dāng)前域名 l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
href l3y28資訊網(wǎng)——每日最新資訊28at.com
| 當(dāng)前網(wǎng)頁路徑 l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
userAgent l3y28資訊網(wǎng)——每日最新資訊28at.com
| 當(dāng)前user-agent l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
deviceInfo l3y28資訊網(wǎng)——每日最新資訊28at.com
| 設(shè)備的相關(guān)信息 l3y28資訊網(wǎng)——每日最新資訊28at.com | object l3y28資訊網(wǎng)——每日最新資訊28at.com
|
安裝
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
使用
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
全局點擊監(jiān)聽
可以通過配置globalClickListeners來對于某些DOM節(jié)點進行點擊監(jiān)聽上報l3y28資訊網(wǎng)——每日最新資訊28at.com
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
配置上報閾值
上報分為幾種:l3y28資訊網(wǎng)——每日最新資訊28at.com
- 用戶行為上報:點擊、跳轉(zhuǎn)頁面、請求,這些上報數(shù)據(jù)會緩存著,當(dāng)達到閾值時再進行上報
- 錯誤上報:請求報錯、代碼報錯、異步錯誤,這些是立即上報
- 頁面性能上報:白屏、FP、FCP、LCP、CLS、TTFB、FID,這些是立即上報
用戶行為上報的閾值默認是 10,支持自定義 maxEventsl3y28資訊網(wǎng)——每日最新資訊28at.com
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
配置緩存方式
如果你想要避免用戶重新打開網(wǎng)頁之后,造成上報數(shù)據(jù)的丟失,那么你可以配置緩存方式,通過配置cacheType:l3y28資訊網(wǎng)——每日最新資訊28at.com
- normal:默認,本地緩存
- storage:瀏覽器 localStorage 本地緩存
- db:瀏覽器 IndexedDB 本地緩存
app.use(Track, { ...options, cacheType: 'storage' // 配置緩存方式})
打印上報數(shù)據(jù)
可以通過配置 log ,開啟打印上報數(shù)據(jù)。l3y28資訊網(wǎng)——每日最新資訊28at.com
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
靈活上報請求數(shù)據(jù)
請求也是一種行為,也是需要上報的,或許我們有這個需求。l3y28資訊網(wǎng)——每日最新資訊28at.com
- 過濾:某些請求我們并不想上報。
- 自定義校驗請求響應(yīng)數(shù)據(jù):每個項目的響應(yīng)規(guī)則可能都不同,我們想自己判斷哪些響應(yīng)是成功,哪些是失敗。
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
格式化上報數(shù)據(jù)、自定義決定上不上報、自定義上報
如果你想在數(shù)據(jù)上報之前,格式化上報數(shù)據(jù)的話,可以配置report中的format。l3y28資訊網(wǎng)——每日最新資訊28at.com
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
如果你想要自己決定某次上報的時候,進行取消,可以配置report中的isReport。l3y28資訊網(wǎng)——每日最新資訊28at.com
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
如果你不想用這個庫自帶的上報功能,想要自己上報,可以配置report中的customReport。l3y28資訊網(wǎng)——每日最新資訊28at.com
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
手動上報
手動上報分為三種:l3y28資訊網(wǎng)——每日最新資訊28at.com
- 手動添加上報數(shù)據(jù):添加到緩存中,等到達到閾值再上報。
- 手動執(zhí)行數(shù)據(jù)上報:立即上報。
- 自定義指令上報:如果你是 Vue 項目,支持指令上報。
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
如果你是 Vue 項目,可以使用指令v-track進行上報。l3y28資訊網(wǎng)——每日最新資訊28at.com
圖片l3y28資訊網(wǎng)——每日最新資訊28at.com
配置參數(shù)
選項 l3y28資訊網(wǎng)——每日最新資訊28at.com | 描述 l3y28資訊網(wǎng)——每日最新資訊28at.com | 類型 l3y28資訊網(wǎng)——每日最新資訊28at.com |
projectKey l3y28資訊網(wǎng)——每日最新資訊28at.com
| 項目key l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
userId l3y28資訊網(wǎng)——每日最新資訊28at.com
| 用戶id l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
report.url l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報url l3y28資訊網(wǎng)——每日最新資訊28at.com | string l3y28資訊網(wǎng)——每日最新資訊28at.com
|
report.reportType l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報方式 l3y28資訊網(wǎng)——每日最新資訊28at.com | img、http、beacon l3y28資訊網(wǎng)——每日最新資訊28at.com
|
report.headers l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報自定義請求頭,http 上報模式生效l3y28資訊網(wǎng)——每日最新資訊28at.com | object l3y28資訊網(wǎng)——每日最新資訊28at.com
|
report.format l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報數(shù)據(jù)格式化 l3y28資訊網(wǎng)——每日最新資訊28at.com | function l3y28資訊網(wǎng)——每日最新資訊28at.com
|
report.customReport l3y28資訊網(wǎng)——每日最新資訊28at.com
| 自定義上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | function l3y28資訊網(wǎng)——每日最新資訊28at.com
|
report.isReport l3y28資訊網(wǎng)——每日最新資訊28at.com
| 自定義決定上不上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | function l3y28資訊網(wǎng)——每日最新資訊28at.com
|
cacheType l3y28資訊網(wǎng)——每日最新資訊28at.com
| 數(shù)據(jù)緩存方式 l3y28資訊網(wǎng)——每日最新資訊28at.com | normal、storage、db l3y28資訊網(wǎng)——每日最新資訊28at.com
|
globalClickListeners l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報狀態(tài) l3y28資訊網(wǎng)——每日最新資訊28at.com | array l3y28資訊網(wǎng)——每日最新資訊28at.com
|
log l3y28資訊網(wǎng)——每日最新資訊28at.com
| 當(dāng)前域名 l3y28資訊網(wǎng)——每日最新資訊28at.com | boolean l3y28資訊網(wǎng)——每日最新資訊28at.com
|
maxEvents l3y28資訊網(wǎng)——每日最新資訊28at.com
| 上報閾值 l3y28資訊網(wǎng)——每日最新資訊28at.com | number l3y28資訊網(wǎng)——每日最新資訊28at.com
|
historyUrlsNum l3y28資訊網(wǎng)——每日最新資訊28at.com
| 需要記錄的url跳轉(zhuǎn)數(shù)組 l3y28資訊網(wǎng)——每日最新資訊28at.com | number l3y28資訊網(wǎng)——每日最新資訊28at.com
|
checkHttpStatus l3y28資訊網(wǎng)——每日最新資訊28at.com
| 判斷響應(yīng)數(shù)據(jù) l3y28資訊網(wǎng)——每日最新資訊28at.com | function l3y28資訊網(wǎng)——每日最新資訊28at.com
|
filterHttpUrl l3y28資訊網(wǎng)——每日最新資訊28at.com
| 過濾上報請求數(shù)據(jù) l3y28資訊網(wǎng)——每日最新資訊28at.com | function l3y28資訊網(wǎng)——每日最新資訊28at.com
|
switchs.xhr l3y28資訊網(wǎng)——每日最新資訊28at.com
| 是否開啟xhr請求上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | boolean l3y28資訊網(wǎng)——每日最新資訊28at.com
|
switchs.fetch l3y28資訊網(wǎng)——每日最新資訊28at.com
| 是否開啟fetch請求上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | boolean l3y28資訊網(wǎng)——每日最新資訊28at.com
|
switchs.error l3y28資訊網(wǎng)——每日最新資訊28at.com
| 是否開啟錯誤上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | boolean l3y28資訊網(wǎng)——每日最新資訊28at.com
|
switchs.whitescreen l3y28資訊網(wǎng)——每日最新資訊28at.com
| 是否開啟白屏檢測上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | boolean l3y28資訊網(wǎng)——每日最新資訊28at.com
|
switchs.hashchange l3y28資訊網(wǎng)——每日最新資訊28at.com
| 是否開啟hash變化請求上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | boolean l3y28資訊網(wǎng)——每日最新資訊28at.com
|
switchs.history l3y28資訊網(wǎng)——每日最新資訊28at.com
| 是否開啟history變化上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | boolean l3y28資訊網(wǎng)——每日最新資訊28at.com
|
switchs.performance l3y28資訊網(wǎng)——每日最新資訊28at.com
| 是否開啟頁面性能上報 l3y28資訊網(wǎng)——每日最新資訊28at.com | boolean l3y28資訊網(wǎng)——每日最新資訊28at.com
|
本項目源碼:https://github.com/sanxin-lin/sunshine-track。各位兄弟姐妹如果覺得喜歡的話,可以點個 star 哦~l3y28資訊網(wǎng)——每日最新資訊28at.com
本文鏈接:http://www.www897cc.com/showinfo-26-92466-0.html為了全面監(jiān)控用戶行為,我寫了個超級前端工具庫!
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 關(guān)于 Python 數(shù)據(jù)分析的 15 個 NumPy 應(yīng)用
下一篇: 動態(tài)鏈接庫的實現(xiàn)原理是什么?