2021-07-23 sentry终于官方支持 vue3项目了,顺手更新文档 2020-10-17 初稿
我们开发的前端项目在运行过程中难免会遇到一些bug,比如js运行报错、第三方资源报错、接口报错等。作为项目的维护者肯定还是希望遇到问题能及时解决,这里就自然产生了前端监控。
前端监控的细节可以参考这篇文章 《漫谈前端监控之错误监控》。
本文以Vue项目为例, 来部署一套sentry来实现在线监控方便分析。
部署安装
Sentry 提供两种部署方式:
- 使用它提供的在线服务,好处是不需要搭建、不需要消耗自己的资源
- 提供 Docker 私有化部署。好处是自托管,顾虑低。
本文关注 私有部署。操作比较简单可以参考官方文档
git clone git@github.com:getsentry/onpremise.git# 2021-07-21 v21.7
前置条件
首先需要安装下面的依赖并运行:
Docker~~19.03.6+ ~~ 以实际为准-
安装
- 执行
./install.sh执行安装,期间会经过漫长的等待,需要下载很多资源,等就是了。这一点很不友好,没有提供aio的包,自己编译下载了一堆。 - 结束之后会提示是否创建一个账户,创建即可
- docker-compose up -d
- 启动之后访问
127.0.0.1:9000即可

如果您的邮件客户端不在上述列出的范围内,您可以尝试如下通用配置:接收邮件服务器:imap.qq.com发送邮件服务器:smtp.qq.com账户名:您的QQ邮箱账户名(如果您是VIP邮箱,账户名需要填写完整的邮件地址)密码:您的QQ邮箱密码电子邮件地址:您的QQ邮箱的完整邮件地址
配置
首先设置中文和时区

进入页面熟悉一下,选择创建项目 create a new project

可以看到内置了很多平台,我们当然选择 Vue 平台。
更新:更新vue3使用说明:
npm install --save @sentry/vue @sentry/tracing
@sentry/integrations(包含 Vue 的支持)@sentry/tracing(性能指标)
在项目的 src/main.js 中做如下配置:
import * as Sentry from "@sentry/vue";import { Integrations } from "@sentry/tracing";const app = createApp({})Sentry.init({app,dsn: "xxx",integrations: [new Integrations.BrowserTracing()],// Set tracesSampleRate to 1.0 to capture 100%// of transactions for performance monitoring.// We recommend adjusting this value in productiontracesSampleRate: 1.0,});
使用
在Vue项目中设置报错,可以看到报错,截图如下:

如果是接口报错可以设置拦截器、异步任务报错使用
Sentry.captureException(error); 来提交报错,比如:
axios.interceptors.response.use(data => {return data;}, error => {Sentry.captureException(error);})
传递错误时候可以设置 scope 来补充用户信息等。
sourceMap处理
配置报警邮件。
细节后续再补充。
可以看这篇文章 前端错误监控方案 sentry
https://develop.sentry.dev/self-hosted/
其他
类似的开源产品 https://ohbug.net/
