GithubHelp home page GithubHelp logo

m-cheng-web / web-tracing Goto Github PK

View Code? Open in Web Editor NEW
1.6K 1.6K 197.0 2.4 MB

为前端项目提供【 埋点、行为、性能、异常、请求、资源、路由、曝光、录屏 】监控手段

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

License: MIT License

JavaScript 0.43% TypeScript 99.03% Shell 0.54%

web-tracing's Introduction

About me

  • 🎖 web前端,对重复性或不规范的工作容忍度低
  • 🌱 保持idea,不在乎得失,做一个纯粹的技术人
  • 🏃🏻‍♀️ 跑步爱好者,2023目标完成半马 - bingo

语言与框架

常用工具

web-tracing's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

web-tracing's Issues

安装@web-tracing/vue2依赖,运行问题

你好,我在vue2项目使用vue2版本的插件时,遇到了问题
warning in ./node_modules/@web-tracing/vue2/index.mjs
Module not found: Error: Can't resolve 'worker_threads' in 'H:\workspace\demo\node_modules@web-tracing\vue2'
node版本: 14.21.3
vue版本: 2.7.14
请问有解决方案吗

自动采集pv数据

1、自动采集pv数据的话支持传入params吗,我没想到解决方案。还是说这种业务场景的话直接让他手动调tracePageView上报pv数据
麻烦回复下我上面这个问题,谢谢

错误录屏的有的图标会丢失样式

目前发现只有图标和图片会出现这种情况
image

还有一个问题想请教下,错误录屏我想延长最后结束的时刻如何做
因为我发现错误抛出的时候都是在最后一秒,画面可能还没有显示错误信息录屏就结束了
所以想知道如何在错误出来后,延后一两秒

sendBeacon 存在的问题以及兜底

          以前写业务代码的时候有印象sendBeacon是存在最大发送上线的,也就是总请求数达到一个上限之后将会返回失败。大佬可以验证一下,同时关注一下sendBeacon的返回值,false的时候还是要兜底一下的

Originally posted by @sansui-orz in #10 (comment)

能否自定义和后端交互方式?

请问是否可以自定义和后端交互方式?目前看默认为sendBeacon(),另外有的两种方式是img和xml;
或者用比较僵硬的方式,在beforeSendData和afterSendData两个钩子用自定义的方式去和后端交互请求?(但是这样确实比较累赘

重构计划

一期(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能让使用者去替代更改、比如监听网络状态的内部实现支持使用者去重写
  • 探索:插件化(核心功能+其他插件的形式)
  • 探索:错误录屏

vue3使用会报错

failed to load config from /Users/chenpengfei/Desktop/workspace/项目/xxx/web-large-screen/vite.config.ts
error when starting dev server:
ReferenceError: window is not defined
at Object. (/Users/chenpengfei/Desktop/workspace/项目/xxx/web-large-screen/node_modules/@web-tracing/vue3/index.cjs:729:18)
at Module._compile (node:internal/modules/cjs/loader:1198:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
at Module.load (node:internal/modules/cjs/loader:1076:32)
at Function.Module._load (node:internal/modules/cjs/loader:911:12)
at Module.require (node:internal/modules/cjs/loader:1100:19)
at require (node:internal/modules/cjs/helpers:119:18)
at Object. (/Users/xxx/Desktop/workspace/项目/xxx/web-large-screen/vite.config.ts:40:27)
at Module._compile (node:internal/modules/cjs/loader:1198:14)
at Object.require.extensions. [as .ts] (/Users/xxx/Desktop/workspace/xxx/web-large-screen/node_modules/vite/dist/node/chunks/dep-6e2js:62006:20)

Process finished with exit code 1

点击事件监听有bug

页面上多个data-warden-event-id绑定事件之后,连续点击,eventId都是最后一次点击的绑定id了。
image

参数类型问题

在二开时遇到一个问题如下

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.