LogRocket 简介 #

什么是前端监控? #

在了解 LogRocket 之前,我们需要先理解"前端监控"的概念。前端监控是一种技术手段,用于实时监测、记录和分析 Web 应用在用户浏览器中的运行状态。

text
┌─────────────────────────────────────────────────────────────┐
│                    前端监控的本质                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   传统开发模式:                                             │
│                                                             │
│   开发者测试 → 上线 → 用户反馈问题 → 复现 → 修复            │
│                                                             │
│   问题:                                                     │
│   ❌ 依赖用户反馈,信息不完整                                │
│   ❌ 难以复现用户遇到的问题                                  │
│   ❌ 不知道用户实际如何使用产品                              │
│   ❌ 性能问题难以定位                                        │
│                                                             │
│   前端监控模式:                                             │
│                                                             │
│   上线 → 实时监控 → 自动捕获 → 即时告警 → 快速修复          │
│                                                             │
│   优势:                                                     │
│   ✅ 自动捕获所有错误和异常                                  │
│   ✅ 记录用户完整操作过程                                    │
│   ✅ 性能指标实时上报                                        │
│   ✅ 问题复现变得简单                                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

什么是 LogRocket? #

LogRocket 是一个专注于前端应用的监控平台,提供会话回放、错误追踪、性能监控等功能。它就像飞机的"黑匣子",记录用户在应用中的每一次操作,让开发者能够像看电影一样回放用户遇到的问题。

核心定位 #

text
┌─────────────────────────────────────────────────────────────┐
│                        LogRocket                             │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  会话回放    │  │  错误追踪    │  │  性能监控    │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  网络请求    │  │  控制台日志  │  │  用户分析    │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

LogRocket 解决的问题 #

text
┌─────────────────────────────────────────────────────────────┐
│                   LogRocket 解决的问题                       │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  前端开发中的痛点:                                          │
│                                                             │
│  1. 问题难以复现                                            │
│     "在我电脑上是好的"                                       │
│     不知道用户做了什么操作                                   │
│                                                             │
│  2. 错误信息不足                                            │
│     只有错误消息                                            │
│     缺少上下文环境                                          │
│                                                             │
│  3. 性能问题难定位                                          │
│     页面加载慢但不知道原因                                   │
│     不知道哪个环节拖慢了速度                                 │
│                                                             │
│  4. 用户体验难以量化                                        │
│     不知道用户实际如何使用产品                               │
│     难以发现可用性问题                                      │
│                                                             │
│  LogRocket 解决方案:                                        │
│                                                             │
│  ✅ 会话回放:完整记录用户操作过程                           │
│  ✅ 丰富上下文:网络请求、控制台日志、Redux 状态             │
│  ✅ 性能分析:Core Web Vitals、资源加载时间                  │
│  ✅ 用户行为:点击、滚动、输入、导航                         │
│                                                             │
└─────────────────────────────────────────────────────────────┘

LogRocket 的历史 #

发展历程 #

text
2016年 ─── LogRocket 成立
    │
    │      前端监控需求增长
    │      会话回放概念兴起
    │
2017年 ─── 产品发布
    │
    │      核心会话回放功能
    │      JavaScript 错误追踪
    │
2018年 ─── 功能扩展
    │
    │      Redux 状态监控
    │      网络请求追踪
    │
2019年 ─── 性能监控
    │
    │      Core Web Vitals
    │      性能分析仪表板
    │
2020年 ─── 企业级功能
    │
    │      团队协作
    │      高级分析
    │
2021年 ─── AI 增强
    │
    │      智能错误分组
    │      自动问题检测
    │
2023年 ─── 产品整合
    │
    │      前端 + 后端监控
    │      全栈可观测性
    │
至今   ─── 行业领先
    │
    │      数千家企业使用
    │      前端监控首选工具

里程碑版本 #

版本 时间 重要特性
1.0 2017 会话回放、错误追踪
2.0 2018 Redux 集成、网络监控
3.0 2019 性能监控、Core Web Vitals
4.0 2020 团队协作、高级过滤
5.0 2021 AI 分析、智能告警
6.0 2022 后端集成、全栈监控

LogRocket 的核心特点 #

1. 会话回放(Session Replay) #

LogRocket 最核心的功能,像录像一样记录用户操作:

text
┌─────────────────────────────────────────────────────────────┐
│                    会话回放原理                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   传统录屏:                                                 │
│   ❌ 文件体积大                                             │
│   ❌ 无法搜索和过滤                                         │
│   ❌ 隐私问题                                               │
│                                                             │
│   LogRocket 方式:                                          │
│   ✅ 记录 DOM 变化和用户交互                                │
│   ✅ 重构页面状态                                           │
│   ✅ 文件体积小                                             │
│   ✅ 可搜索、可过滤                                         │
│   ✅ 支持隐私屏蔽                                           │
│                                                             │
│   记录内容:                                                 │
│   - DOM 快照和变化                                          │
│   - 用户交互(点击、输入、滚动)                             │
│   - 网络请求和响应                                          │
│   - 控制台日志                                              │
│   - Redux/ Vuex 状态变化                                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

2. 错误追踪 #

javascript
// LogRocket 捕获的错误信息
{
  "error": {
    "message": "Cannot read property 'id' of undefined",
    "type": "TypeError",
    "stacktrace": [...]
  },
  "context": {
    "user": {
      "id": "123",
      "email": "user@example.com"
    },
    "browser": {
      "name": "Chrome",
      "version": "120.0"
    },
    "url": "https://example.com/dashboard",
    "reduxState": {
      "users": { ... },
      "settings": { ... }
    },
    "networkRequests": [
      { "url": "/api/users", "status": 200 }
    ]
  }
}

3. 性能监控 #

text
┌─────────────────────────────────────────────────────────────┐
│                    性能指标监控                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  Core Web Vitals:                                          │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  LCP (Largest Contentful Paint)                     │   │
│  │  最大内容绘制时间                                    │   │
│  │  目标: < 2.5s                                       │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  FID (First Input Delay)                            │   │
│  │  首次输入延迟                                        │   │
│  │  目标: < 100ms                                      │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  CLS (Cumulative Layout Shift)                      │   │
│  │  累积布局偏移                                        │   │
│  │  目标: < 0.1                                        │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  其他指标:                                                  │
│  - 页面加载时间                                              │
│  - 资源加载瀑布图                                            │
│  - API 响应时间                                              │
│  - 前端渲染性能                                              │
│                                                             │
└─────────────────────────────────────────────────────────────┘

4. 网络请求监控 #

text
┌─────────────────────────────────────────────────────────────┐
│                    网络请求追踪                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  记录内容:                                                  │
│                                                             │
│  GET /api/users                                             │
│  ├── 请求时间: 2024-01-20 10:30:00                         │
│  ├── 响应时间: 245ms                                        │
│  ├── 状态码: 200                                            │
│  ├── 请求头: { Authorization: "Bearer ..." }                │
│  └── 响应体: { users: [...] }                               │
│                                                             │
│  POST /api/orders                                           │
│  ├── 请求时间: 2024-01-20 10:30:15                         │
│  ├── 响应时间: 520ms                                        │
│  ├── 状态码: 201                                            │
│  ├── 请求体: { product_id: 123, quantity: 2 }              │
│  └── 响应体: { order_id: "ord_456" }                        │
│                                                             │
│  优势:                                                     │
│  ✅ 完整的请求/响应记录                                     │
│  ✅ 与用户操作关联                                          │
│  ✅ 支持慢请求分析                                          │
│  ✅ 失败请求追踪                                            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

5. 状态管理集成 #

javascript
// Redux 状态追踪
import { createStore, applyMiddleware } from 'redux';
import { createMiddleware } from '@logrocket/redux';

const store = createStore(
  reducer,
  applyMiddleware(
    createMiddleware(),
    // 其他中间件
  )
);

// 每次状态变化都会被记录
// 可以在回放中看到状态变化过程

LogRocket vs 其他监控工具 #

对比分析 #

特性 LogRocket Sentry FullStory Hotjar
会话回放
错误追踪 ⚠️
性能监控 ⚠️
网络请求 ⚠️
状态管理
价格 付费 免费/付费 付费 免费/付费
专注领域 前端监控 错误追踪 UX 分析 UX 分析

选择建议 #

text
┌─────────────────────────────────────────────────────────────┐
│                    选择指南                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  选择 LogRocket 的场景:                                     │
│  ✅ 需要完整的会话回放                                      │
│  ✅ 前端应用为主                                            │
│  ✅ 需要网络请求追踪                                        │
│  ✅ 使用 Redux/Vuex 状态管理                                │
│  ✅ 需要详细的错误上下文                                    │
│                                                             │
│  选择 Sentry 的场景:                                        │
│  ⚠️ 需要全栈错误追踪 → 考虑 Sentry                         │
│  ⚠️ 需要开源/自托管 → 考虑 Sentry                          │
│                                                             │
│  选择 FullStory 的场景:                                     │
│  ⚠️ 侧重 UX 分析和热力图 → 考虑 FullStory                  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

LogRocket 的应用场景 #

1. Bug 复现与调试 #

text
┌─────────────────────────────────────────────────────────────┐
│                    Bug 复现流程                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   传统方式:                                                 │
│                                                             │
│   用户报告 Bug → 尝试复现 → 查看日志 → 猜测原因 → 修复      │
│   问题:耗时、效率低、可能无法复现                           │
│                                                             │
│   LogRocket 方式:                                          │
│                                                             │
│   收到错误告警 → 查看会话回放 → 看到完整操作过程 → 立即定位 │
│   优势:快速、准确、无需猜测                                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘

2. 性能优化 #

javascript
// 性能问题分析
// 1. 查看页面加载时间分布
// 2. 分析资源加载瀑布图
// 3. 找出慢 API 请求
// 4. 检查 JavaScript 执行时间

// 示例:发现某个 API 请求慢
GET /api/dashboard/stats
├── 平均响应时间: 2.5s
├── P95 响应时间: 5.2s
└── 影响用户数: 1,234

3. 用户体验分析 #

text
┌─────────────────────────────────────────────────────────────┐
│                    UX 分析示例                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  发现问题:                                                  │
│  - 用户在某个表单页面停留时间过长                            │
│  - 多次点击提交按钮                                         │
│  - 最终放弃离开                                             │
│                                                             │
│  回放分析:                                                  │
│  - 表单验证错误信息不明显                                   │
│  - 提交按钮没有禁用状态                                     │
│  - 没有加载指示器                                           │
│                                                             │
│  改进措施:                                                  │
│  - 优化错误提示样式                                         │
│  - 添加按钮禁用状态                                         │
│  - 添加加载动画                                             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

4. 客户支持 #

text
┌─────────────────────────────────────────────────────────────┐
│                    客户支持场景                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  客服收到工单:                                              │
│  "我无法完成订单支付"                                        │
│                                                             │
│  传统方式:                                                  │
│  - 客服询问详细信息                                         │
│  - 用户描述可能不准确                                       │
│  - 技术介入调查                                             │
│  - 耗时数小时甚至数天                                       │
│                                                             │
│  LogRocket 方式:                                           │
│  - 客服通过用户 ID 搜索会话                                 │
│  - 直接观看用户操作过程                                     │
│  - 看到错误发生在支付步骤                                   │
│  - 立即转给技术团队修复                                     │
│  - 耗时数分钟                                               │
│                                                             │
└─────────────────────────────────────────────────────────────┘

LogRocket 的核心概念 #

Session(会话) #

用户从进入网站到离开的整个过程,包含所有交互记录。

Recording(录制) #

会话的录制文件,可以回放查看。

Issue(问题) #

被检测到的问题,如 JavaScript 错误、性能问题等。

Event(事件) #

用户操作或系统事件,如点击、导航、网络请求等。

User(用户) #

访问应用的用户,可以关联用户 ID 进行追踪。

LogRocket 的架构 #

text
┌─────────────────────────────────────────────────────────────┐
│                    LogRocket 架构                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                    应用层                            │  │
│   │  ┌─────────┐  ┌─────────┐  ┌─────────┐             │  │
│   │  │ React   │  │ Vue     │  │ Angular │             │  │
│   │  └────┬────┘  └────┬────┘  └────┬────┘             │  │
│   └───────┼────────────┼────────────┼───────────────────┘  │
│           │            │            │                       │
│           ▼            ▼            ▼                       │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                    SDK 层                            │  │
│   │  LogRocket SDK 捕获事件、记录会话、上报数据           │  │
│   └─────────────────────────────────────────────────────┘  │
│                          │                                  │
│                          ▼                                  │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                    服务层                            │  │
│   │  ┌─────────┐  ┌─────────┐  ┌─────────┐             │  │
│   │  │ Ingest  │  │ Process │  │ Store   │             │  │
│   │  └─────────┘  └─────────┘  └─────────┘             │  │
│   └─────────────────────────────────────────────────────┘  │
│                          │                                  │
│                          ▼                                  │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                    存储层                            │  │
│   │  ┌─────────┐  ┌─────────┐  ┌─────────┐             │  │
│   │  │ 会话存储 │  │ 索引存储 │  │ 分析引擎 │             │  │
│   │  └─────────┘  └─────────┘  └─────────┘             │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

学习路径 #

text
入门阶段
├── LogRocket 简介(本文)
├── 安装与配置
└── 基础使用

进阶阶段
├── 会话回放详解
├── 性能监控
├── 错误追踪
└── 网络请求监控

高级阶段
├── 状态管理集成
├── 自定义事件
├── 隐私与安全
└── API 集成

实战阶段
├── React 项目集成
├── Vue 项目集成
├── 团队协作
└── 最佳实践

下一步 #

现在你已经了解了 LogRocket 的基本概念,接下来学习 安装与配置 开始实际使用 LogRocket!

最后更新:2026-03-29