一个为惠灏 H5 项目设计的前端监控和业务分析库。此包提供了强大的监控和业务事件跟踪功能,以确保项目的顺畅运行和洞察性分析。
您可以使用 npm、yarn 或 pnpm 安装此包:
# 使用 npm
npm install @hhorg/analytics
# 使用 yarn
yarn add @hhorg/analytics
# 使用 pnpm
pnpm add @hhorg/analytics
此包支持通过 unplugin-auto-import
实现 API 自动导入。按照以下步骤在您的 Vue3 项目中配置该库:
npm install unplugin-auto-import --save-dev
import autoImport from 'unplugin-auto-import/vite'
import { analyticsResolver } from '@hhorg/analytics/resolver'
export default {
plugins: [
autoImport({
dts: true,
resolvers: [analyticsResolver()]
})
]
}
// analytics.config.ts
import { moniter, sensors } from '@hhorg/analytics/vue'
export default {
install(app, router) {
moniter.init(app, {
dsn: '项目错误或性能监控上报的远端服务 URL, 在 Sentry 的后台创建项目后配置',
environment: '根据服务环境配置production或者development',
release: '配置项目名称',
router
})
// 配置用户信息用于错误报告, 此处应该获取用户真实信息然后进行登录
moniter.login({
username: 'errorReport',
email: 'errorReport@hh.com'
})
sensors.init(app, {
dsn: '项目业务数据上报的远端服务 URL, 在 Sentry 的后台创建项目后配置',
environment: '根据服务环境配置production或者development',
release: '配置项目名称'
})
// 配置用户信息用于业务埋点, 此处应该获取用户真实信息然后进行登录
sensors.login({
username: 'sensorsReport',
email: 'sensorsReport@hh.com'
})
sensors.autoTrack()
}
}
// main.ts
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import analytics from './analytics.config'
const app = createApp(App)
app.use(router)
// 路由加载完成后初始化
app.use(analytics, router)
无需显式导入 @hhorg/analytics
,可以直接调用以下 API 进行业务埋点:
// 示例:login.vue 页面
sensors.track('事件名称', {
// 此处为需要上报的数据,请注意字段长度不超过 200 字符
})
完成以上配置后,您可以在项目中直接使用该包的 API, 而无需手动导入。
修改ESLint的配置文件: .eslintrc.cjs
或者eslint.config.js
module.exports = {
// 添加两个全局变量
globals: {
sensors: true,
moniter: true
}
// ...省略其他配置
}
@hhorg/analytics
包导出了以下对象,下面列出每个对象所包含的主要属性、方法和事件:
Name | Type | Description |
---|---|---|
moniter |
Object |
主要用于项目错误监控/性能监控的模块。 |
sensors |
Object |
主要用于业务埋点上报的模块。 |
directive |
Object |
一个全局 Vue 指令,可以在元素上快速进行简单数据的业务埋点上报(开发中...)。 |
Module | API | Description |
---|---|---|
moniter |
init |
Parameters:
options还可以传入更多的Sentry配置项, 请参考Sentry文档 |
moniter |
login |
Parameters:
|
moniter |
track |
Parameters:
|
moniter |
trackError |
Parameters: 传参方式跟moniter.track一致, 唯一的区别是底层将事件级别设置为了'fatal', 而track的级别为'info' |
moniter |
sentryApi |
Parameters: 将sentry的Api暴露出来, 用于更底层的能力, 一般不建议使用 |
Module | API | Description |
---|---|---|
sensors |
init |
Parameters:
allowEventList不是一个必传参数, 业务开发中尽量与产品将事件名称固定到一些范围, 保持在数据面板中的整洁, 便于筛选。options还可以传入更多的Sentry配置项, 请参考Sentry.BrowserClient的配置 |
sensors |
login |
Parameters:
|
sensors |
track |
Parameters:
|
sensors |
autoTrack |
Parameters: 开启业务埋点中的自动上报功能, 自动上报page_view和page_duration事件 |
sensors |
sentryApi |
Parameters: 将sentry的Api暴露出来, 用于更底层的能力, 一般不建议使用 |
更多 API 和配置选项将在未来的更新中记录。
常用埋点事件的事件名称和事件属性值, 可以参考埋点事件参考规范
本项目根据 MIT 许可证获得许可。有关详细信息,请参阅 LICENSE 文件。
欢迎贡献!请随时提交问题、建议或拉取请求以改进库。