Vue项目监控接入Sentry实现前端异常上报错误定位告警通知一、Sentry简介Sentry是一个开源的实时错误监控平台支持多语言、多框架。它能捕获前端运行时的异常JavaScript错误、资源加载失败、API请求异常等提供详细的堆栈信息、用户操作路径、环境信息等并支持邮件、Slack等告警通知。二、Vue项目接入Sentry步骤1. 安装依赖在Vue项目中安装Sentry的Vue SDK和浏览器SDKnpm install sentry/vue sentry/browser # 或 yarn add sentry/vue sentry/browser2. 初始化Sentry在main.js中初始化Sentry替换YOUR_DSN为你的Sentry项目DSN在Sentry控制台创建项目后获取import { createApp } from vue; import * as Sentry from sentry/vue; import { BrowserTracing } from sentry/tracing; const app createApp(...); Sentry.init({ app, dsn: YOUR_DSN, integrations: [ new BrowserTracing({ tracingOrigins: [localhost, your-domain.com], }), ], tracesSampleRate: 0.2, // 采样率按需调整 release: your-project-name1.0.0, // 版本号用于定位问题 });3. 配置SourceMap上传为精确定位错误到源码行需上传SourceMap安装Sentry CLInpm install sentry/cli -g创建.sentryclirc配置文件[default] urlhttps://sentry.your-domain.com/ orgyour-org projectyour-project auth_tokenyour-auth-token在package.json中添加构建脚本scripts: { build: vue-cli-service build, sentry-upload: sentry-cli releases --org your-org new your-project-name1.0.0 sentry-cli releases --org your-org files your-project-name1.0.0 upload-sourcemaps dist/js --url-prefix ~/js }构建后自动上传npm run build npm run sentry-upload三、核心功能实现1. 异常上报自动捕获Sentry自动捕获Vue组件渲染错误、生命周期钩子错误、全局未处理Promise异常。手动上报通过Sentry.captureException上报自定义错误try { riskyOperation(); } catch (error) { Sentry.captureException(error); }2. 错误定位SourceMap映射上传后Sentry将混淆后的错误堆栈映射到源码。上下文信息Sentry自动附加用户ID需手动设置Sentry.setUser({ id: 123 })环境信息OS、浏览器、URL用户操作轨迹通过BrowserTracing集成3. 告警通知配置告警规则在Sentry控制台进入项目 →Alerts→Create Alert Rule按需设置条件如错误频率 5次/分钟、影响用户 10%通知渠道邮件默认启用Slack/Teams在Settings → Integrations中绑定Webhook自定义通知到钉钉/企业微信四、最佳实践区分环境通过environment参数区分测试/生产环境Sentry.init({ environment: process.env.NODE_ENV, });按需采样降低非关键错误的上报量Sentry.init({ beforeSend(event) { if (event.exception?.values?.[0]?.type NetworkError) { return null; // 忽略网络错误 } return event; }, });用户反馈捕获错误时展示反馈表单import * as Sentry from sentry/vue; Sentry.showReportDialog();五、效果验证主动触发一个测试错误setTimeout(() { throw new Error(Sentry Test Error); }, 1000);在Sentry控制台的Issues中查看错误详情确认堆栈是否映射到源码上下文信息是否完整告警是否触发
第八阶段:工程化、质量管控与高级拓展(136天),Vue项目监控:接入Sentry实现前端异常上报+错误定位+告警通知
发布时间:2026/6/10 9:47:47
Vue项目监控接入Sentry实现前端异常上报错误定位告警通知一、Sentry简介Sentry是一个开源的实时错误监控平台支持多语言、多框架。它能捕获前端运行时的异常JavaScript错误、资源加载失败、API请求异常等提供详细的堆栈信息、用户操作路径、环境信息等并支持邮件、Slack等告警通知。二、Vue项目接入Sentry步骤1. 安装依赖在Vue项目中安装Sentry的Vue SDK和浏览器SDKnpm install sentry/vue sentry/browser # 或 yarn add sentry/vue sentry/browser2. 初始化Sentry在main.js中初始化Sentry替换YOUR_DSN为你的Sentry项目DSN在Sentry控制台创建项目后获取import { createApp } from vue; import * as Sentry from sentry/vue; import { BrowserTracing } from sentry/tracing; const app createApp(...); Sentry.init({ app, dsn: YOUR_DSN, integrations: [ new BrowserTracing({ tracingOrigins: [localhost, your-domain.com], }), ], tracesSampleRate: 0.2, // 采样率按需调整 release: your-project-name1.0.0, // 版本号用于定位问题 });3. 配置SourceMap上传为精确定位错误到源码行需上传SourceMap安装Sentry CLInpm install sentry/cli -g创建.sentryclirc配置文件[default] urlhttps://sentry.your-domain.com/ orgyour-org projectyour-project auth_tokenyour-auth-token在package.json中添加构建脚本scripts: { build: vue-cli-service build, sentry-upload: sentry-cli releases --org your-org new your-project-name1.0.0 sentry-cli releases --org your-org files your-project-name1.0.0 upload-sourcemaps dist/js --url-prefix ~/js }构建后自动上传npm run build npm run sentry-upload三、核心功能实现1. 异常上报自动捕获Sentry自动捕获Vue组件渲染错误、生命周期钩子错误、全局未处理Promise异常。手动上报通过Sentry.captureException上报自定义错误try { riskyOperation(); } catch (error) { Sentry.captureException(error); }2. 错误定位SourceMap映射上传后Sentry将混淆后的错误堆栈映射到源码。上下文信息Sentry自动附加用户ID需手动设置Sentry.setUser({ id: 123 })环境信息OS、浏览器、URL用户操作轨迹通过BrowserTracing集成3. 告警通知配置告警规则在Sentry控制台进入项目 →Alerts→Create Alert Rule按需设置条件如错误频率 5次/分钟、影响用户 10%通知渠道邮件默认启用Slack/Teams在Settings → Integrations中绑定Webhook自定义通知到钉钉/企业微信四、最佳实践区分环境通过environment参数区分测试/生产环境Sentry.init({ environment: process.env.NODE_ENV, });按需采样降低非关键错误的上报量Sentry.init({ beforeSend(event) { if (event.exception?.values?.[0]?.type NetworkError) { return null; // 忽略网络错误 } return event; }, });用户反馈捕获错误时展示反馈表单import * as Sentry from sentry/vue; Sentry.showReportDialog();五、效果验证主动触发一个测试错误setTimeout(() { throw new Error(Sentry Test Error); }, 1000);在Sentry控制台的Issues中查看错误详情确认堆栈是否映射到源码上下文信息是否完整告警是否触发