前端监控的本质并不是“收集日志”,而是:
构建面向用户体验与系统稳定性的可观测性体系
其目标可以抽象为三层价值:
任何前端监控系统,本质上都围绕三类数据展开:
| 类型 | 本质 | 目的 |
|---|---|---|
| Metrics(指标) | 可量化的数值 | 衡量体验质量 |
| Logs(日志) | 事件记录 | 还原问题现场 |
| Traces(链路) | 过程追踪 | 定位因果关系 |
一个完整的前端监控体系,需要同时具备:
这些能力共同构成“前端可观测性闭环”。
从系统设计角度,前端监控可抽象为四层结构:
┌──────────────────────────┐
│ 展示分析层 │
│ Dashboard / 告警 / 报表 │
└──────────▲───────────────┘
│
┌──────────┴───────────────┐
│ 数据处理层 │
│ 聚合 / 清洗 / 归因 / 存储│
└──────────▲───────────────┘
│
┌──────────┴───────────────┐
│ 上报网关层 │
│ 接收 / 限流 / 缓存 │
└──────────▲───────────────┘
│
┌──────────┴───────────────┐
│ SDK采集层 │
│ 浏览器端数据收集 │
└──────────────────────────┘
监控数据的生命周期可以概括为:
事件发生 → SDK采集 → 本地处理 → 上报 → 聚合分析 → 展示告警
这是前端监控系统的“第一性原理流程”。
所有前端监控日志,都可以抽象为一个统一的基础结构:
基础信息 + 环境信息 + 业务信息 + 扩展信息
| 字段 | 作用 |
|---|---|
| traceId | 全链路唯一标识 |
| type | 日志类型 |
| createAt | 日志产生时间 |
| updatedAt | 日志更新时间 |
| level | 日志级别 |
| 分类 | 字段 |
|---|---|
| 浏览器信息 | userAgent、browserType |
| 页面信息 | url、pageId、title |
| 用户信息 | userId、fingerprintId |
| 设备信息 | clientType |
| 业务信息 | appId、appName |
这些字段解决的是:
“这条日志发生在什么环境中”
在基础模型之上,不同类型事件拥有各自的专属字段:
| 字段 | 含义 |
|---|---|
| message | 错误信息 |
| stack | 调用栈 |
| dataId | 问题唯一ID |
| type | 异常类型 |
| 字段 | 含义 |
|---|---|
| url | 接口地址 |
| method | 请求方法 |
| status | HTTP状态 |
| elapsedTime | 耗时 |
| body | 请求参数 |
| 字段 | 含义 |
|---|---|
| name | 指标名称 |
| value | 当前值 |
| delta | 差值 |
| rating | 等级 |
| 字段 | 含义 |
|---|---|
| name | 行为名称 |
| type | 行为类型 |
| category | 行为分类 |
| time | 发生时间 |
前端性能监控的核心是围绕用户体验的量化指标。
| 指标 | 关注点 |
|---|---|
| LCP | 加载速度 |
| FID | 交互响应 |
| CLS | 视觉稳定 |
| INP | 综合交互 |
| FCP | 首次渲染 |
| TTI | 可交互时间 |
| TBT | 主线程阻塞 |
| TTFB | 网络响应 |
| 指标 | 优秀 | 需要改进 | 较差 |
|---|---|---|---|
| LCP | <2.5s | 2.5s~4s | >4s |
| FID | <100ms | 100~300ms | >300ms |
| CLS | <0.1 | 0.1~0.25 | >0.25 |
| FCP | <1.8s | 1.8~3s | >3s |
| INP | <200ms | 200~500ms | >500ms |
| TTFB | <800ms | 800~1800ms | >1800ms |
TTFB → FP → FCP → LCP
这条时间线反映了:
页面从“开始加载”到“核心内容可见”的完整过程
采集层是监控体系的入口,其本质是:
将浏览器运行时的各种信号转化为结构化事件
通过拦截网络请求,实现对:
的统一监控。
通过全局异常捕获:
实现:
的统一感知。
通过全局事件监听,采集用户行为轨迹:
形成:
行为 breadcrumbs(行为面包屑)
用于问题归因。
常见三种方案:
| 方式 | 特点 |
|---|---|
| fetch/xhr | 通用可靠 |
| Beacon API | 页面卸载安全 |
| 图片打点 | 最轻量 |
不同场景选择不同策略:
在上报层通常需要:
这些策略决定了系统的稳定性。
监控的终极目标不是“数据收集”,而是“问题治理”。
一个成熟的前端监控系统应遵循:
前端监控 = 体验可观测 + 问题可追踪 + 行为可分析
采集 → 上报 → 分析 → 告警 → 治理 → 优化
通过以上体系化设计,前端监控从:
“日志收集工具”
升级为:
“面向用户体验的可观测平台”