为了全面监控用户行为,我写了个超级前端工具库!

sunshine-track 应用于前端监控, 基于 行为上报,实现了 用户行为、错误监控、页面跳转、页面白屏检测、页面性能检测等上报功能。适用于 Vue、React、Angular 等框架。

sunshine-track 应用于前端监控, 基于 行为上报,实现了 用户行为、错误监控、页面跳转、页面白屏检测、页面性能检测等上报功能。适用于 Vue、React、Angular 等框架。

简介

sunshine-track应用于前端监控, 基于行为上报,实现了用户行为、错误监控、页面跳转、页面白屏检测、页面性能检测等上报功能。适用于Vue、React、Angular等框架

本项目源码:https://github.com/sanxin-lin/sunshine-track。各位兄弟姐妹如果觉得喜欢的话,可以点个 star 哦~

功能

sunshine-track具备以下功能:

  • ✅ 用户行为上报:包括点击、跳转页面、跳转页面记录数组、请求等
  • ✅ 用户手动上报:提供Vue 自定义指令以及add、report函数,实现用户手动上报
  • ✅ 自定义上报:提供格式化上报数据、自定义上报函数、自定义决定上不上报等配置项,更灵活地上报数据
  • ✅ 请求数据上报:提供检测请求返回、过滤请求等配置项,让用户决定上报哪些请求数据
  • ✅ 上报方式:提供上报方式配置项,用户可选择img、http、beacon三种方式,http方式又支持xhr、fetch两种,且支持自定义headers
  • ✅ 上报数据缓存:可配置本地缓存、浏览器本地缓存、IndexedDB三种方式
  • ✅ 上报数据阈值:可配置上报数据阈值,达到阈值后进行上报操作
  • ✅ 全局点击上报:可通过配置选择器、元素文本,对全局DOM节点进行点击上报
  • ✅ 页面的性能检测,包括白屏、FP、FCP、LCP、CLS、TTFB、FID等

上报数据格式

选项

描述

类型

uuid

上报数据的id

string

type

上报数据的类型

string

data

上报数据

any

time

上报时间

number

status

上报状态

string

domain

当前域名

string

href

当前网页路径

string

userAgent

当前user-agent

string

deviceInfo

设备的相关信息

object

安装

图片图片

使用

图片图片

全局点击监听

可以通过配置globalClickListeners来对于某些DOM节点进行点击监听上报

图片图片

配置上报阈值

上报分为几种:

  • 用户行为上报:点击、跳转页面、请求,这些上报数据会缓存着,当达到阈值时再进行上报
  • 错误上报:请求报错、代码报错、异步错误,这些是立即上报
  • 页面性能上报:白屏、FP、FCP、LCP、CLS、TTFB、FID,这些是立即上报

用户行为上报的阈值默认是10,支持自定义maxEvents

图片图片

配置缓存方式

如果你想要避免用户重新打开网页之后,造成上报数据的丢失,那么你可以配置缓存方式,通过配置cacheType:

  • normal:默认,本地缓存
  • storage:浏览器 localStorage 本地缓存
  • db:浏览器 IndexedDB 本地缓存
app.use(Track, {
  ...options,
  cacheType: 'storage' // 配置缓存方式
})

打印上报数据

可以通过配置log,开启打印上报数据。

图片图片

灵活上报请求数据

请求也是一种行为,也是需要上报的,或许我们有这个需求。

  • 过滤:某些请求我们并不想上报。
  • 自定义校验请求响应数据:每个项目的响应规则可能都不同,我们想自己判断哪些响应是成功,哪些是失败。

图片图片

格式化上报数据、自定义决定上不上报、自定义上报

如果你想在数据上报之前,格式化上报数据的话,可以配置report中的format。

图片图片

如果你想要自己决定某次上报的时候,进行取消,可以配置report中的isReport。

图片图片

如果你不想用这个库自带的上报功能,想要自己上报,可以配置report中的customReport。

图片图片

手动上报

手动上报分为三种:

  • 手动添加上报数据:添加到缓存中,等到达到阈值再上报。
  • 手动执行数据上报:立即上报。
  • 自定义指令上报:如果你是 Vue 项目,支持指令上报。

图片图片

如果你是 Vue 项目,可以使用指令v-track进行上报。

图片图片

配置参数

选项

描述

类型

projectKey

项目key

string

userId

用户id

string

report.url

上报url

string

report.reportType

上报方式

img、http、beacon

report.headers

上报自定义请求头,http上报模式生效

object

report.format

上报数据格式化

function

report.customReport

自定义上报

function

report.isReport

自定义决定上不上报

function

cacheType

数据缓存方式

normal、storage、db

globalClickListeners

上报状态

array

log

当前域名

boolean

maxEvents

上报阈值

number

historyUrlsNum

需要记录的url跳转数组

number

checkHttpStatus

判断响应数据

function

filterHttpUrl

过滤上报请求数据

function

switchs.xhr

是否开启xhr请求上报

boolean

switchs.fetch

是否开启fetch请求上报

boolean

switchs.error

是否开启错误上报

boolean

switchs.whitescreen

是否开启白屏检测上报

boolean

switchs.hashchange

是否开启hash变化请求上报

boolean

switchs.history

是否开启history变化上报

boolean

switchs.performance

是否开启页面性能上报

boolean

本项目源码:https://github.com/sanxin-lin/sunshine-track。各位兄弟姐妹如果觉得喜欢的话,可以点个 star 哦~

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2024年6月6日 17:04
下一篇 2024年6月6日 17:04

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信