Docker 搭建 Sentry 监控 vue 前端报错
基本镜像
- redis
- postgres
- sentry
生成 sentry 的 secret key
docker run –rm sentry config generate-secret-key
这个 key 要保存好
启动 redis
docker run -d –name sentry-redis redis
启动 postgres
docker run -d –name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
创建 sentry 用户
docker run -it –rm -e SENTRY_SECRET_KEY=’
‘ –link sentry-postgres:postgres –link sentry-redis:redis sentry upgrade
启动 sentry 实例
docker run -d --name my-sentry \ |
启动 cron
docker run -d --name sentry-cron \ |
启动 worker
docker run -d --name sentry-worker-1 \ |
进入系统
localhost:9000 进入 sentry, 创建 js 项目 获取到 sdk 要注册的地址
Vue 配置
安装 raven-js
npm install raven-js –save
插件
根据 raven-js/vue 的插件改了下,添加了 warnHandler, 因为 vue 内部的一些 warning 特别是一些 因为数据结构不对导致的渲染不出来报错,我们肯定也需要捕获
function formatComponentName(vm: any) { |
注入 Vue
import Raven from "raven-js" |
在相应拦截出也可以,进行捕获:
http.interceptors.response.use( |
配置邮箱通知
上面 启动 sentry 相关容器的时候有几个环境变量
-e SENTRY_SERVER_EMAIL=xxx@qq.com \ |
SENTRY_SERVER_EMAIL 要和 SENTRY_EMAIL_USER 地址一样
我这里用的 qq 邮箱
注意:
SENTRY_EMAIL_PASSWORD 是开启设置里面的 smtp 控制的时候,通过短信获得的授权码,不是你的登录密码
到此配置完成,当遇到报错的时候,会直接推送给 sentry. sentry 会通过邮件通知