最近在公司的内部Vue项目中接入sentry技术栈,跟踪运行时错误。
针对这件事分享下,有不完整或者错误的地方欢迎交流。 github前端
Stop hoping your users will report errors
Open-source error tracking that helps developers monitor and fix crashes in real time. Iterate continuously. Boost efficiency. Improve user experience.vue
若是项目容许,你能够在sentry申请一个免费帐户,管理你项目上传的运行时错误。也能够在公司搭建一个sentry。关于搭建sentry这块与本文无关就暂时不说了,能够查看。webpack
(1)sentry是一个收集项目运行时错误日志的框架,这个框架就要分为服务平台和客户端了。git
服务平台: 能够本身本身搭建,也可使用官网的(免费、付费)
客户端:从他的出发点是监控项目代码来理解就知道,须要嵌入项目中。做为前端的话第一个想到的就是插件了。复制代码
(2)、语言的多样化,开发使用语言是多样化的因此sentry支持的语言也比较多github
(3)、错误日志的收集方式。代码中产生的错误日志怎样上传到sentry服务平台。web
当你完成sentry配置的时候,你会获得一个称为“DSN”的值,看起来像一个标准的URL。
Sentry 服务支持多用户、多团队、多应用管理,每一个应用都对应一个 PROJECT_ID,以及用于身份认证的 PUBLIC_KEY 和 SECRET_KEY。
由此组成一个这样的 DSN:
'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'
PROTOCOL 一般会是 http 或者 https,HOST 为 Sentry 服务的主机名和端口,PATH 一般为空。复制代码
To send data to Sentry you will need to configure an SDK with a client key (usually referred to as the SENTRY_DSN value). For more information on integrating Sentry with your application take a look at our documentation.bash
若是是使用的免费的sentry
'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'
PROTOCOL 一般会是 http 或者 https,HOST 为 Sentry 服务的主机名和端口,PATH 一般为空。
具体的能够在你的项目中“Project Setting”中查看app
在客户端中接入是简单的,只须要配置插件就能够了。可是要注意的是,必须在Vue配置以前。每个的客户平台配置内容能够在官网查找。框架
import Vue from 'vue';
import Raven from 'raven-js';
import RavenVue from 'raven-js/plugins/vue';
Raven
.config('https://60f9e820eb7b4a8f9beb62a314b1f80d@sentry.io/242345')
.addPlugin(RavenVue, Vue)
.install();复制代码
点击进去能够查看详情,且会将报错信息默认发送到注册邮箱。工具
如今的前端项目基本都会使用工具进行编译打包压缩等(webpack)。那么,这样的代码在发布后一旦报错返回的源码可能你就很难找到具体位置在哪里了。