跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaScript大前端

前端监控实战:错误、性能与用户行为监控方案

前端监控的重要性及实施方案。通过集成 Sentry 实现错误捕获与回放,利用 web-vitals 监控性能指标(CLS, FID, LCP 等),并结合自定义事件追踪用户行为。相比仅在控制台打印错误,主动上报能显著缩短故障发现时间,提升线上稳定性。

不知所云发布于 2026/4/6更新于 2026/9/970 浏览

前端监控实战:错误、性能与用户行为监控方案

为什么需要前端监控

生产环境崩溃若无法及时发现,将严重影响用户体验。例如某项目在生产环境崩溃 3 小时,开发团队却一无所知。因此,建立有效的前端监控机制至关重要。

错误监控示例

避免仅在控制台打印错误,应集成专业监控服务(如 Sentry)。

// src/utils/errorMonitoring.js
import * as Sentry from '@sentry/react';

export function initSentry() {
  Sentry.init({
    dsn: 'YOUR_SENTRY_DSN',
    integrations: [
      new Sentry.BrowserTracing(),
      new Sentry.Replay()
    ],
    tracesSampleRate: 1.0,
    replaysSessionSampleRate: 0.1
  });
}

export function captureError(error) {
  Sentry.captureException(error);
}

export function captureMessage(message) {
  Sentry.captureMessage(message);
}

使用示例:

// components/Checkout.jsx
import { captureError } from '../utils/errorMonitoring';

   () {
   [loading, setLoading] = ();
    =  () => {
    ();
     {
       api.();
    }  (error) {
      (error);
      ();
    }  {
      ();
    }
  };
   (
    
  );
}
export
default
function
Checkout
const
useState
false
const
handleSubmit
async
setLoading
true
try
await
checkout
catch
captureError
setError
'支付失败'
finally
setLoading
false
return
<button onClick={handleSubmit} disabled={loading}> {loading ? '支付中...' : '支付'} </button>
性能监控

利用 web-vitals 库采集核心网页指标并上报至 Sentry。

// src/utils/performanceMonitoring.js
import { getCLS, getFID, getFCP, getLCP, getTTFB } from 'web-vitals';
import * as Sentry from '@sentry/react';

export function initPerformanceMonitoring() {
  getCLS(sendToSentry);
  getFID(sendToSentry);
  getFCP(console.log);
  getLCP(sendToSentry);
  getTTFB(console.log);
}

function sendToSentry({ name, delta, id }) {
  Sentry.metrics.distribution(name, delta, { tags: { id } });
}
用户行为监控

记录关键用户操作事件,便于分析转化漏斗与异常路径。

// src/utils/userMonitoring.js
import * as Sentry from '@sentry/react';

export function trackEvent(eventName, data) {
  Sentry.captureEvent({ message: eventName, extra: data });
}

export function trackClick(element, eventName) {
  element.addEventListener('click', () => {
    trackEvent(eventName, { timestamp: new Date().toISOString() });
  });
}
// components/Button.jsx
import { trackClick } from '../utils/userMonitoring';
import { useRef, useEffect } from 'react';

export default function Button({ onClick, children }) {
  const buttonRef = useRef(null);
  useEffect(() => {
    if (buttonRef.current) {
      trackClick(buttonRef.current, 'button_clicked');
    }
  }, []);
  return (
    <button ref={buttonRef} onClick={onClick}>
      {children}
    </button>
  );
}

目录

  1. 前端监控实战:错误、性能与用户行为监控方案
  2. 为什么需要前端监控
  3. 错误监控示例
  4. 性能监控
  5. 用户行为监控

更多推荐文章

查看全部
  • Python 未来前景与就业方向分析
  • 低空无人机 AI 算法详解:覆盖公安、消防、水利等 11 大应用场景
  • MySQL GROUP BY 语句语法及实例演示
  • 深入解析汽车 MCU 的软件架构
  • 国内 AI 编程 Coding Plan 深度调研报告(2026 年 2 月)
  • FPGA 开发主流工具对比:Vivado、Quartus 与 ModelSim
  • C 语言 Web 开发:CGI、FastCGI 与 Nginx 实战解析
  • ComfyUI提示词助手:从手动调试到自动化流水线
  • MySQL 下载、安装及环境变量配置教程
  • Codex 上手指南:从 CLI 配置到 MCP 工具集成
  • GTC2026 前瞻:Agentic AI 开源模型与 Physical AI 机器人趋势
  • 网络安全入门指南:成为安全工程师需掌握的五大核心能力
  • Hookshot:轻量级 GitHub Webhook 处理工具
  • 斯坦福 2025 AI Index Report 核心洞察与趋势分析
  • AI 应用开发的技术深度:超越 API 调用的工程实践
  • C++ 算法刷题:平方数、分组与拓扑排序
  • OpenClaw:开源自托管 AI Agent 框架技术解析
  • 宇树 G1 机器人开发:有线与无线连接配置实战
  • AI 大模型通信机制:流式传输与数据封装逻辑解析
  • OpenHarmony 下 Flutter 跨域难题:flutter_cors 实战与适配方案

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online