[小结]-线上Bug监控

为什么需要监控

你进入了一家公司,开发了一个电商平台。

随着公司越做越大,用户越来越多,用户遇到bug投诉的也越来越多。

但是愿意bug上报的是少数,大部分遇到bug都懒得报,当有人打电话给你们投诉时,意味着更多人已经碰到过这个bug。

你想解决这些bug,但是你又没办法知道用户咋操作的。你自己操作又操作不出来

你就想啊,如果我能有办法还原用户当时是怎么操作的就就好了

JS回放技术

js回放技术就是把用户的操作路径展示出来。我们可以像看视频一样,回放用户的操作路径

这里我们借用到一个核心的第三方库--rrweb

Bug监控系统

系统设计

bug上报

  1. 核心库
  1. 记录用户操作: 程序初始化完成后开始录制(监控页面变化和用户事件触发), 然后记录数据到数组
  1. 触发日志上报: 当用户操作异常(JS报错)或者请求异常(axios报错), 把错误信息和用户操作进行上报

bug回放

  1. 页面结构:
  1. 核心库
  1. 核心逻辑

先获取日志列表, 点击回放按钮后, 执行具体的回放

日志服务

  1. 提供接口 (日志列表/日志详情/日志上报)
  1. 数据结构

events: 记录用用户操作

error: 记录具体错误信息

type: 3 (鼠标移动) positions: 移动位置

简单原理

原理核心思想很简单,把页面上状态都变成json数据,然后拿着这个json数据再去转化为页面

体系完善

rrweb的问题在于我们只是记录了用户的界面操作,我们无法监控到具体出了啥问题,因为他无法录制js里的代码。

我们还要建立起一个日志上报体系。用来记录用户的操作路径。

示例:

2025-12-12 12:00:00 张三登录

2025-12-12 12:01:00 张三访问购物车

2025-12-12 12:03:00 张三支付

2025-12-12 12:04:00 张三支付失败, 失败原因: xxxx

线上监控体系

用户回放+操作日志就可以组成一个比较完整的线上监控体系, 帮助程序员快速定位问题

  1. 操作日志可以快速查看用户的关键操作, 定位问题范围和bug优先级
  2. 用户操作回放和报错信息可以具体的查看问题, 定位问题原因
相关推荐
开开心心就好3 小时前
批量提取PDF中的图片,直接导出原图
前端·javascript·支持向量机·智能手机·pdf·html·启发式算法
Setsuna_F_Seiei5 小时前
前端转型 Agent 开发 05 之 Agent Hooks 与 Checkpointer(让 Agent 从全自动转变人为可掌控)
前端·agent·ai编程
百万蹄蹄向前冲7 小时前
风扇转了一晚上MVP专家团翻车事故
前端·人工智能
默_笙7 小时前
🏛 给 AI 配一间办公室:Harness Engineering 六大模块与它的实现
前端·javascript
linux_cfan8 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
kyriewen9 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
郑州光合科技余经理9 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
IT_陈寒10 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
Blanche150010 小时前
利用 RAG 为答疑机器人扩展知识范围
前端
天若有情67310 小时前
【纯前端小工具】公历生日转农历,批量查询每年农历生日对应的公历日期(GitHub Pages在线直接用)
前端·javascript·github pages·农历转换·lunisolar·网页小工具