广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >vue项目前端错误收集之sentry的示例分析
  • 666
分享到

vue项目前端错误收集之sentry的示例分析

2024-04-02 19:04:59 666人浏览 泡泡鱼
摘要

这篇文章主要介绍Vue项目前端错误收集之sentry的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!sentry简介Sentry 是一个开源的错误追踪工具,可以帮助开发人员实

这篇文章主要介绍Vue项目前端错误收集之sentry的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

sentry简介

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

sentry官网: https://sentry.io/

sentry安装

sentry 是一个开源的工具,可以自行搭建。

官方支持两种安装和运行 Sentry 服务器的方法, DockerPython 。推荐使用 Docker 。

当然,对于刚开始接触 sentry 的同学,也可以直接使用官方提供的免费服务,但是有一些限制。

下面先来介绍一下利用官方的免费服务,在前端项目中如何使用 sentry 。

如何在项目中使用sentry

1.首先需要在 sentry 的官网注册一个账号。注册完选择新建一个项目, sentry 支持多种框架,在其中选择 vue 创建项目。我创建了一个名为test的项目。

vue项目前端错误收集之sentry的示例分析 

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

// main.js
import * as Sentry from '@sentry/browser';
import * as Integrations from '@sentry/integrations';
// 在生产环境中让sentry报错
process.env.node_ENV === "production" && Sentry.init({
 dsn: 'Https://1111a5bc59b54778b75f4e3a92f2e462@sentry.io/1447145',
 integrations: [
 new Integrations.Vue({
  Vue,
  attachProps: true,
 }),
 ],
});

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

[auth]
token="your token"

[defaults]
url = https://sentry.io
org = "your org"
project = test

然后我们在代码里制造一个错误,就可以让 sentry 捕获了。本地如何模拟线上环境访问dist下的文件呢?需要装一个 http-server ,在dist文件夹下启动一个http服务就可以了。

npm i http-server 
cd dist
http-server -p 8888

注意:sentry捕获到的错误不会在打印在控制台中。

在network中可以看到, sentry 发送了一个错误请求,请求参数如下:

vue项目前端错误收集之sentry的示例分析 

接下来我们就可以在后台看到刚才上传的错误信息,同时 sentry 也会给你的邮箱发送一封错误邮件。

错误信息查看

在后台找到我们的test项目,点击进去就能看到多了一条错误信息。

vue项目前端错误收集之sentry的示例分析 

点击信息可以进入信息详情进行查看。

vue项目前端错误收集之sentry的示例分析 

但是这个错误信息是压缩后的,不能定位到代码的实际位置。使用意义不大,因此需要上传 source-map 。

上传source-map

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

项目配置:

// webpack.prod.conf
const SentryCliPlugin = require("@sentry/webpack-plugin");
plugins:[
 new SentryCliPlugin({
  include: "./dist",
  release: process.env.RELEASE_VERSION,
  configFile: "sentry.properties"
 })
]
// main.js
Sentry.init({
 dsn: "https://4ec86726f2ba40338f66837c6b959eed@sentry.io/1447158",
 integrations: [
  new Integrations.Vue({
   Vue,
   attachProps: true
  }),
  new Integrations.RewriteFrames()
 ],
 release: process.env.RELEASE_VERSION
});
// prod.env.js
"use strict";
const release = "test-1";
process.env.RELEASE_VERSION = release;
module.exports = {
 NODE_ENV: '"production"',
 RELEASE_VERSION: `"${release}"`
};

需要保证 plugins 和 Sentry.init 两个配置中的 release 版本号相同,这样的话 sentry 才能将 source-map 文件一一对应上。

修改完之后我们重新build一下项目,build的过程比较慢:

vue项目前端错误收集之sentry的示例分析 

之后我们去后台可以看见在版本中多了一个 test-1 版本,也就是我们刚刚上传的版本。

vue项目前端错误收集之sentry的示例分析 

点进去可以看见我们刚才上传的 source-map 文件。

vue项目前端错误收集之sentry的示例分析 

这时我们重新触发一次错误,就可以看到具体的出错位置了。

vue项目前端错误收集之sentry的示例分析 

sentry关联github

在设置->集成里面可以设置 sentry 关联各种服务,如 GitHub、jira 等。关联上 github 后,可以直接为该异常创建issue。

vue项目前端错误收集之sentry的示例分析 

这样在该异常的详情页就可以创建issue到 sentry 这个仓库了。

vue项目前端错误收集之sentry的示例分析 

创建时可以选择仓库,名称,详情及指定给谁:

vue项目前端错误收集之sentry的示例分析 

打开 github ,在 sentry 这个仓库下,发现多了一个issue,就是刚才我们创建的。

vue项目前端错误收集之sentry的示例分析 

在我们向 github 提交 commit 的时候,如果加上了异常的id,例如这样:

vue项目前端错误收集之sentry的示例分析 

git commit -m 'Fixes TEST-3'

这样在下次发版 build 的时候, sentry 会自动将该异常的状态从 unresolved 变成 resolved ,并会给出本次提交的 diff 地址。

vue项目前端错误收集之sentry的示例分析 

搭建sentry服务

官方给出的有两种方法可以自行搭建sentry:

•python
•docker

推荐使用docker。下面来介绍一下通过docker如何搭建sentry。

首先需要下载docker

Mac桌面版地址: https://hub.docker.com/editions/commUnity/docker-ce-desktop-mac

其中已经集成了docker命令行、docker-compose等。

然后需要去github拉取 Sentry On-Premise ,这个是官方提供的通过docker安装sentry的仓库,里面介绍了如何一步一步搭建sentry。

创建服务步骤:

cd onpremise
// 创建本地数据库
docker volume create --name=sentry-data && docker volume create --name=sentry-postgres
// 创建环境配置文件
cp -n .env.example .env 
// 构建docker服务
docker-compose build
// 产生秘钥,将其作为SENTRY_SECRET_KEY加入到.env文件中
// 创建数据库,用交互式的提示生成管理员账号
docker-compose run --rm web upgrade
// 启动所有服务
docker-compose up -d

如果过程一切正常的话,现在访问localhost:9000就能看到sentry的登录页面了,用刚才生成的管理员账号密码登录即可。

vue项目前端错误收集之sentry的示例分析 

以后的操作就跟上面介绍的一样了。

注意事项

1.利用本地搭建的sentry创建项目的时候,发现dsn那一栏是空的,系统并没有自动生成。需要自己拼接这个dsn。它由以下几部分组成,分别是协议、公钥、私钥、主机、路径(一般为空)、项目id。
'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'
//类似这样,把它放在sentry.init中的dsn即可

http://4cf10206ef27409bbb64f68b:a67a0eb5513e43ab883af3f3@localhost:9000/2

以上是“vue项目前端错误收集之sentry的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: vue项目前端错误收集之sentry的示例分析

本文链接: https://www.lsjlt.com/news/79420.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue项目前端错误收集之sentry的示例分析
    这篇文章主要介绍vue项目前端错误收集之sentry的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!sentry简介Sentry 是一个开源的错误追踪工具,可以帮助开发人员实...
    99+
    2022-10-19
  • node vue项目开发之前后端分离的示例分析
    这篇文章主要介绍node vue项目开发之前后端分离的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!node vue项目开发最近看了近一周的vue开发,有诸多感触,我之前接触...
    99+
    2022-10-19
  • react前端项目打包优化的示例分析
    小编给大家分享一下react前端项目打包优化的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!分析通过控制台判断加载资源时间还有资源大小通过开发者工具可以看到白屏的主要原因在于bun...
    99+
    2022-10-19
  • SpringBoot+mybatis+Vue实现前后端分离项目的示例
    目录一、SpringBoot环境搭建1、项目的数据库2、项目所需依赖3、application.yml文件4、入口类二、vue实现前后端分离1、前端页面2、springBoot控制层...
    99+
    2022-11-12
  • Vue.js前端项目多语言方案的示例分析
    这篇文章给大家分享的是有关Vue.js前端项目多语言方案的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、通常有哪些内容需要处理总的来说,一个Web应用中,需要做多语言切换的内容常见的包括如下方面:模板...
    99+
    2023-06-20
  • vue移动端项目代码拆分的示例分析
    这篇文章给大家分享的是有关vue移动端项目代码拆分的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先代码拆分应该保证本地开发的时候只有一套代码,提取所有公共页面,并且分...
    99+
    2022-10-19
  • vue移动端项目缓存问题的示例分析
    这篇文章给大家分享的是有关vue移动端项目缓存问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先描述下问题场景:A页面->B页面->C页面。假设A页面是列...
    99+
    2022-10-19
  • flask和vue前后端分离项目部署的示例代码
    前段时间开发了一个项目, 我后端用的是flask框架写接口,前端用的是vue框架,项目前后端完全分离,部署的时候遇到一点问题,记录一下. 部署环境:centos6.5、Python...
    99+
    2022-11-12
  • vue自动路由之单页面项目的示例分析
    这篇文章给大家分享的是有关vue自动路由之单页面项目的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这是一个什么项目?答:这是一个单页面的vue.js项目,主要为了实现在...
    99+
    2022-10-19
  • 基于Nuxt.js项目服务端性能优化与错误检测的示例分析
    小编给大家分享一下基于Nuxt.js项目服务端性能优化与错误检测的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!nuxt...
    99+
    2022-10-19
  • vue列表单项展开收缩功能之this.$refs的示例分析
    这篇文章主要为大家展示了“vue列表单项展开收缩功能之this.$refs的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue列表单项展开收缩功能之t...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作