1.0.8 • Published 11 months ago

janus-bury v1.0.8

Weekly downloads
-
License
ISC
Repository
-
Last release
11 months ago

janus-bury 是一个支持vue的前端监控SDK,可以收集并上报:代码错误,白屏,页面访问时间,用户行为等数据。

安装

$ npm install janus-bury

$ yarn add janus-bury

$ pnpm install janus-bury

vue3使用

import { createApp } from 'vue'
import buryPlugin from 'janus-bury'

const app = createApp(App)
app.use(buryPlugin, options) // 配置可详见下文
app.mount('#app')
  

配置

常规配置项

NameTypeDefaultDescription
appNamestring必填上报的项目数据(区分上报数据来源)
appCodestring''项目code
appVersionstring''项目版本
server_urlstring必填数据上报的接口地址
send_typebeacon/ajax/imgbeacon接口上报的方式
userIdstring''用户id
extobject{}额外需要上报的数据
methodpost/getpost接口上报的方法
reportInterceptorfunction(reportData)-上报数据前拦截器可以修改上报的数据

监控配置项

NameTypeDefaultDescriptionevent_type
monitorRouterbooleantrue是否开启页面路由监听view/leave
monitorWhiteScreenbooleantrue是否开启白屏监听whiteScreen
monitorErrorbooleantrue是否开启error监听error(运行时错误)/resourceError(资源错误,例如img图片加载失败)
monitorRequestbooleantrue是否开启接口请求监听reqError
monitorRejectbooleantrue是否开启Promise的reject监听rejectError
monitorPerformancebooleantrue是否开启性能监听monitorPerformance

monitorWhiteScreen

如果开启了白屏检测可以配置检测白屏的参数

NameTypeDefaultDescription
whiteScreenOptionsobject{skeletonProject: false, whiteBoxElements: 'html', 'body', '#app', '#root'}白屏监听参数

skeletonProject: 是否开启了骨架屏 whiteBoxElements: 监听的元素,默认监听了html,body,#app,#root,如果页面有自定义的监听白屏的dom,可以自行添加

monitorPerformance

性能指标监控涉及 FCP LCP FID CLS TTFB FSP 这些指标的上报

reportInterceptor 上报前拦截器

// 可以做一些数据发送前的log
app.use(buryPlugin, {
  appName: 'janus-bury',
  server_url: 'http://127.1.1.1:3000/event/report'
  reportInterceptor: (data: any) => {
    console.log('data', data)
  }
})

// 也可以变更上报前的数据,因为有一些接口的请求数据与当前的上报数据不一样
app.use(buryPlugin, {
  appName: 'janus-bury',
  server_url: 'http://127.1.1.1:3000/event/report'
  reportInterceptor: (data: any) => {
    return {
      ...data.baseInfo,
      ...data.eventInfo
    }
  }
})

若拦截器没有 return value 则默认上报插件的请求数据

方法

functionNameparamsDescription
init(option)配置初始化数据
setServerUrl(value)-设置接口上报的地址
setUserId(value)-设置用户id
setMethod(value = 'get'/'post')-设置接口上报的方法
track(data: object/string, event_type: string = 'click')-设置上报的数据

使用方式

前提是 main.ts 进行了初始化即 app.use

import { useBury } from 'janus-bury'
const { dataSender } = useBury()

// 上报埋点
dataSender.value.track('按钮点击')
dataSender.value.track('页面浏览', 'view')
dataSender.value.track({
produnct_id: '产品id',
})
dataSender.value.setServerUrl('http://127.0.0.1:3000/api/report')

接口上报的数据

分为 baseInfoeventInfo,其中 baseInfo 是基础信息,eventInfo 是上报的数据

{
    "baseInfo": {
        "appName": "janus-bury",
        "appCode": "jauns-bury",
        "appVersion": "1.0.0",
        "clientHeight": 919,
        "clientWidth": 616,
        "colorDepth": 24,
        "pixelDepth": 24,
        "screenWidth": 1920,
        "screenHeight": 1080,
        "vendor": "Google Inc.",
        "platform": "Win32",
        "usergent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
    },
    "eventInfo": {
        "userId": "",
        "pageId": "8bba8620-51ba-41ca-b3a8-948f5a1f2412", // 页面唯一id
        "deviceId": "e8ce5403de494be4a72d5e5b69b9dc75", // 通过浏览器指纹生成的id
        "url": "http://127.0.0.1:5173/#/about",
        "timestramp": 1733987624598,
        "event_name": "about页面浏览",
        "event_type": "view",
        "page_path": "/about",
        "page_from": "/",
        "page_name": "about"
    }
}
1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

12 months ago

1.0.0

12 months ago