wangdaodao / web-tracing

前端 - 埋点, 性能采集, 异常采集, 请求采集, 路由采集

Home Page:https://m-cheng-web.github.io/web-tracing-docu/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

web-tracing 性能监控插件

一个基于 JavaScript 的跨平台 ( 行为埋点 / 性能采集 / 异常采集 / 请求采集 / 路由采集 ) 插件

官方文档 & Demo演示

https://m-cheng-web.github.io/web-tracing-docu/


重构 & 新功能添加

此项目正进行重构中,在重构完成前已发布的npm包不会继续更新(文档也不会更新),且一期代码已封版移入“1.0”分支,当前main分支会持续更新重构代码(如果这样的模式影响到您,作者表示很抱歉,如果需要支持请随时联系我)

一期(sdk已有能力)

  • 简单支持 vue2 + vue3
  • 自动采集 + 暴露api给用户手动采集上报
  • 采集功能:【用户事件采集、页面跳转采集、请求采集、错误采集、资源加载采集】
  • 采集上传方法:只提供 sendBeacon(内部自动降级为image)

二期(持续更新,预计2023.5 - 2023.6 完成)

  • 整体代码结构更改
  • 现有bug解决
  • 文档系统与sdk核心代码融合 (vuepress -> vitepress)
  • js -> ts
  • 更好的兼容 vue2、vue3(react以及小程序优先级靠后一些)
  • 支持暴露更多变量(例如最大缓存数、延迟上传时间、dom埋点名称等等)
  • 支持hook以及自定义hook
  • 支持加密传输(加密方式待确定)
  • 关于用户信息的重构 - 【1.分为未登录与已登录的场景,登录后进行绑定,机器与用户id进行多对多绑定(更多方案还在确定中) 2.支持动态修改用户信息】
  • 支持更多上传方式
  • 支持延迟加载sdk、异步发送敏感数据
  • 支持暴露更多sdk内部方法(例如使用者想要拿到此时的硬件数据)
  • 支持抽样发送,数据临时存储本地的形式减少服务端压力(这里同样也支持断网续联后发送)
  • 支持更多的事件以及行为监听
  • 支持对特定dom监控事件(例如监控页面button按钮的点击事件,这在大批量埋点场景中比较需要,另提供一些属性来标识特定按钮无需采集)
  • 支持区间打点,区间采集
  • 支持区域曝光度采集
  • 支持静默(通过配置来设定遇到大批量事件时sdk静默或者用范围时间记录上报,例如当大批量报错时)
  • 支持错误信息去重(并自动转为区间事件)
  • 为 vue3 提供一系列个性化hooks
  • sourcemap 错误跟踪
  • 最大上传长度限定
  • 提供 ignoreErrors,ignoreRequest 等
  • 白屏检测
  • 首次首屏数据更精确化
  • demo官网示例更简单化且提供在线编写能力
  • 探索:一些关键性的api能让使用者去替代更改、比如监听网络状态的内部实现支持使用者去重写
  • 探索:插件化(核心功能+其他插件的形式)
  • 探索:错误录屏

本地调试(main分支代码)

pnpm install

第一步:初始化所有测试项目仓库
nr test:install

第二步:打包并监听各个sdk
nr watch

第三步:运行js测试项目
nr test:js

nr test:vue2 (也可以运行vue2测试项目)
nr test:vue3 (也可以运行vue3测试项目)

nr docs (文档调试)

🙏🙏🙏 点个Star

如果您觉得这个项目还不错, 可以在 Github 上面帮我点个star, 支持一下作者ヾ(◍°∇°◍)ノ゙

About

前端 - 埋点, 性能采集, 异常采集, 请求采集, 路由采集

https://m-cheng-web.github.io/web-tracing-docu/

License:MIT License


Languages

Language:TypeScript 98.5%Language:JavaScript 0.9%Language:Shell 0.6%