美文网首页工作生活
Vue项目接入Sentry错误监控服务

Vue项目接入Sentry错误监控服务

作者: Sven0706 | 来源:发表于2019-07-03 15:12 被阅读0次

Sentry简介

Sentry 是一个开源的错误追踪工具,可以帮助开发人员实时监控和修复系统中的错误。其专注于错误监控以及提取一切事后处理所需的信息;支持几乎所有主流开发语言(JS/Java/Python/php)和平台, 并提供了web来展示输出错误。
sentry官网:https://sentry.io/

Sentry安装

Sentry 是一个开源的工具,可以自行搭建。
官方支持两种安装和运行 Sentry 服务器的方法,Docker 和 Python。推荐使用 Docker。
这里建议让公司的运维或者后台同学搭建好,搭建好之后让他给你账号

Sentry 前端部署

创建Vue类型的Sentry并引入到项目中

1.png
创建项目页面会自动跳转到如何配置vue项目页面。接下来就按照指引在vue代码里引入 sentry。可以通过 cdn 或者 npm 引入。我们采用 npm 引入。引入的时候需要给init 函数传递一个 dsn 参数。这个参数唯一指定了我们刚才创建的项目。如果不传这个参数,sentry 不会发送错误。

新版的Sentry并不会自动生成dsn,需要我们自己按照格式拼接
dsn: '协议://公钥@服务器地址/项目ID',

// main.js
import * as Sentry from '@sentry/browser'
import * as Integrations from '@sentry/integrations'
if (process.env.NODE_ENV === 'production') { //只在生产环境使用
  Sentry.init({
    dsn: 'http://8aac4526a2cdds198723f8d23520ec@127.0.0.1/17',
    integrations: [
      new Integrations.Vue({
        Vue,
        attachProps: true
      })
    ]
  })
}
至此,项目已经能够被Sentry监控到了,接下来上传source-map辅助定位问题

如果不上传source-map的话,虽然也能监控道控制台错误,但是由于源文件都被webpack处理混淆压缩,所以不太好定位到具体原因,因此建议上传source-map

上传source-map

上传的方式有多种。可以通过 sentry-cli 通过命令行的方式来上传 source-map,但是需要手动上传。也可以采用 webpack-plugin 这个插件,可以在 build 的同时自动上传 source-map。这里建议采用自动上传策略。

1、在项目跟目录下增加.sentryclirc文件,其中的token可以在左上角头像里的api keys里面获取。

[auth]
token=6e3e03b8c0594d1186db2177d58942eb4132823839294a848593eff31eb712f9

[defaults]
url=服务器地址
org=你的组织名
project=刚刚创建的项目名

2、安装webpack-plugin 插件并使用,这里给出vue-cli3的配置

npm i @sentry/webpack-plugin -D // 安装插件

//vue.config.js 
const SentryWebpackPlugin = require('@sentry/webpack-plugin')
module.exports = {
  ...
  productionSourceMap: true,
  configureWebpack: config => {
     if (process.env.NODE_ENV === 'production') { //只在上传环境上传
        config.plugins.push(
          new SentryWebpackPlugin({
            include: './dist',
            release: 'game-center-html@prod',
            urlPrefix: '~/game/', //这个参数指定source-map文件的路径,默认服务器根目录,如果路径错误将无法定位map文件
            ignoreFile: '.sentrycliignore',
            ignore: ['node_modules', 'webpack.config.js'],
            configFile: 'sentry.properties'
          })
        )
      }
   }
}

urlPrefix参数重要说明
~/为网站根目录,后续路径须对应source-map
这里的urlPrefix可以通过线上看js文件的完整路径,有可能不在根目录下
比如线上js文件的路径为http://www.baidu.com/game/js/app.dsds323.js
我们上传时文件的urlPrefix就应该设置为 '~/game/'

3、 修改main.js中的配置

// main.js
import * as Sentry from '@sentry/browser'
import * as Integrations from '@sentry/integrations'
if (process.env.NODE_ENV === 'production') { //只在生产环境使用
  Sentry.init({
    dsn: 'http://8aac4526a2cdds198723f8d23520ec@127.0.0.1/17',
    integrations: [
      new Integrations.Vue({
        Vue,
        attachProps: true
      }),
       new Integrations.RewriteFrames() //<-----新增
    ],
    release: 'game-center-html@prod'  //<-----新增
  })
}

release说明
必须保证 vue.config.jsmain.js 两个配置中的 release 版本号相同,这样的话 Sentry 才能将source-map文件一一对应上,每次修改都会在后台生产一个新的版本。

至此,每次执行npm run build都会生产source-map并上传到Sentry

回到Senrtry控制台,就能在版本中看到和release同名的版本,新的错误监控将能够看到源代码

删除项目中的map文件

由于我们在vue.config.js中开启了productionSourceMap,所以每次npm run build都会生产map文件,这就会导致打包体积很大,并且如果map文件被上传到线上,可能存在安全隐患,所以建议在打包之后删除map文件,因为执行npm run build之后已经将source-map上传到了Sentry,本地打包出来的map文件已经没有用了,所以是可以删除的
1、手动删除
2、构建命令删除

完结

相关文章

  • Vue项目接入Sentry错误监控服务

    Sentry简介 Sentry 是一个开源的错误追踪工具,可以帮助开发人员实时监控和修复系统中的错误。其专注于错误...

  • vivo手机出现Uncaught SyntaxError: Un

    一、排查具体过程 使用sentry监控vue项目发现挺多Uncaught SyntaxError: Unexpec...

  • Django错误和异常日志上报Sentry

    sentry是一个开源的监控系统,能支持服务端与客户端的监控,还有个强大的后台错误分析、报警平台。Sentry 本...

  • 好用的模块、开源项目

    易上手,操作简单,功能强大的开源项目 1、Sentry监控系统 sentry是一个开源的监控系统,能支持服务端与客...

  • Nuxt.js接入Sentry

    Sentry[https://docs.sentry.io/]简介 Sentry 是一个流行的错误监控平台,帮助开...

  • vue项目中使用sentry

    sentry 配置 步骤一: 1. 注册 sentry 账号 2. 在 sentry 管理平台创建一个监控 vue...

  • vue项目创建并接入sentry

    vue项目创建并接入sentry 一、安装node.js nodejs.cn官网下载,傻瓜式安装,直到Finish...

  • Sentry for vue - Raven.js

    在vue官方文档看到这个推荐的错误追踪服务- sentry,去官网看了看觉得挺不错的,就准备用到项目里。嗯,还有官...

  • Vue错误监控:Vue与Sentry结合

    前言 作为一个前端,你是不是经常遇到这样情况: 客户:为什么我这个页面看不到数据??我:(急忙打开网站),我这边数...

  • Sentry简介

    Sentry SaaS服务 => https://sentry.io/ => 注册账号 => 新建项目 自建服务 ...

网友评论

    本文标题:Vue项目接入Sentry错误监控服务

    本文链接:https://www.haomeiwen.com/subject/iiwqhctx.html