sentry + vue实现错误日志监控

起因

项目采用vue全家桶开发,现在拟嵌入sentry,实现对于线上网站进行错误日志记录。其实上传日志很简单,基本配置就可以了,但是上传配套的sourcemap则颇为费劲。这里记录一下使用心得。


实施步骤

上传日志

sentry使用文档,官方介绍很简单
main.js 中引入如下代码:


npm install @sentry/integrations
# or
yarn add @sentry/integrations
import Vue from 'vue'
import * as Sentry from '@sentry/browser';
import * as Integrations from '@sentry/integrations';Sentry.init({dsn: 'your dsn',integrations: [new Integrations.Vue({Vue,attachProps: true,}),],
});

其中 DSN 在项目的下图位置找到
DSN的位置
这样之后我们重新打包项目,错误就可以自动上传到sentry的项目下issues里面了。

通常我们还会做一步,设置release的版本,很简单,只需要在sentry初始化的时候配置一下release就可以了。后续所有的sourcemap文件上传也需要配置相同的release版本号。

Sentry.init({dsn: 'your dsn',release: 'release version',integrations: [new Integrations.Vue({Vue,attachProps: true,}),],
});

但是因为我们的代码是webpack打包后的,所以你看到的错误日志是这样的,根本无法定位具体出错代码的位置。
无法定位的错误日志
如果我们要想看到具体的报错信息,那我们就需要上传sourcemap文件了。

上传sourcemap文件

sourcemap文件的上传方式有两种

  1. sentry-cli 手动上传
  2. 第三方包自动上传,这里采用官方推荐的 @sentry/webpack-plugin
采用sentry-cli的方式上传步骤如下:
  1. 全局安装 @sentry/cli

    npm i -g @sentry/cli

  2. 登录

    sentry-cli --url 域名地址 login

    这里的域名地址,是你的host地址,包括域名[+端口]。因为这一步采用网页形式登录,所以需要你提前申请auto Token,申请方式如下:
    点击 账号 -> API keys, 点击 Create New Token
    记得 project:releasesproject:write 要勾选上

  3. 设置版本号

    sentry-cli releases -o 组织名 -p 项目名 new 版本号

    其中,进入你的项目下,查看浏览器地址,组织名【sentry】和项目名【your-project-name】。
    组织名/项目名

  4. 打包你的项目,生成sourcemap

  5. 上传sourcemap文件到sentry

    sentry-cli releases -o 组织名 -p 项目名 files 版本号 upload-sourcemaps 打包后的js目录 --url-prefix 线上js访问地址

    其中最需要注意的是线上js访问地址,多半上传sourcemap成功,但是不能解析的都源于此。成功后的sourcemap文件可以在你的项目下的releases下对应版本查看,正确的应该如下图:
    正确上传sourcemap后效果
    正常解析后的结果是可以定位到代码行的错误提示,如下:

    可以定位到代码行的错误提示
    其他:
    删除sourcemap指令

    	sentry-cli releases files 发布版本号 delete --all
    
利用@sentry/webpack-plugin自动上传sourcemap

惯例,还是先介绍官网资料

const SentryCliPlugin = require('@sentry/webpack-plugin');const config = {plugins: [new SentryCliPlugin({include: '.',ignoreFile: '.sentrycliignore',ignore: ['node_modules', 'webpack.config.js'],configFile: 'sentry.properties',}),],
};

这里我们还依赖一个配置文件,根目录下的sentry 配置文件 .sentryclirc,文件内容如下:

[defaults]
url=your url
org=your organization
project=your project[auth]
token=your auth

通常情况下,我们在plugun的配置中,还需要额外配置两个参数: releaseurlPrefix, release同前面一样,urlPrefix也一样(很重要)。

其实两种方式都掌握最好,因为我们通常会趋向于利用第三方工具自动上传,但是遇到问题的时候,我们可以选择手动上传的方式进行调试。

结果

完成上述步骤,我们就可以对于线上遇到的问题进行监控了。
由于我们的项目需要同时监控**线上版**和**预发布**版本,所以,project name 和 release, 以及 dsn都需要根据环境变量做适配。

参考

  • 前端错误监控 -【Vue】与【Sentry】的结合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSPF单域实验报告

1.1 实验任务<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />(1) 配置Loopback地址作为路由器的ID。(2) 配置OSPF的进程并在相应的接口上启用。(3) OSPF起来后&#xff0c;更新计时器。1.2 实验环境和网络拓扑<?xm…

常用唤醒APP的方式

参考常用唤醒APP的方式

ASP.NET编程规范

第一部分&#xff1a;界面设计标准 1&#xff0e;开发环境设置&#xff1a;屏幕设置为800*600/1024*768 2&#xff0e;界面设计原则&#xff1a;风格必须统一 3&#xff0e;B/S结构开发原则&#xff1a;使用框架/模板 4&#xff0e;页面使用表格&#xff08;Table&#xff09;进…

H5页面适配iOS、Android和微信

前言 本文章针对H5开发的单页全屏无滚动页面。 解决方案 整体采用vw、vh作为基本单位&#xff0c;采用flex布局&#xff0c;针对字体使用rem单位。 多终端适配 针对app包下载等业务场景&#xff0c;需要识别对应的终端&#xff0c;采用不同的地址下载。针对微信特定情况&a…

代码随想录算法训练营第十三天 | 239. 滑动窗口最大值、347.前 K 个高频元素

239. 滑动窗口最大值 题目链接&#xff1a;239. 滑动窗口最大值 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 文章讲解…

sql server 2005 COUNT_BIG (Transact-SQL)

返回组中的项数。COUNT_BIG 的用法与 COUNT 函数类似。两个函数唯一的差别是它们的返回值。COUNT_BIG 始终返回 bigint 数据类型值。COUNT 始终返回 int 数据类型值。后面可能跟随 OVER 子句。 Transact-SQL 语法约定 语法 COUNT_BIG ( { [ ALL | DISTINCT ] expression } | * …

Study on Android【五】--自定义ContentProvider的语义

Android做到现在。开始感觉到Android确实还是太年轻。系统本身好不够成熟&#xff0c;相关文档更是少的可怜。在Android的旅途中到处是暗坑陷阱&#xff0c;掉进去摔得半死&#xff0c;还只能靠自己琢磨着爬出来。想 在大部分工作集中在了定义一套ContentProvider以及上层的显示…

2021面试题整理

BFC是什么&#xff0c;怎么使用&#xff1f; 什么是BFC&#xff1f;看这一篇就够了 宏任务与微任务 async function fn1 () {await fn2()console.log(1); } async function fn2 () {console.log(2); } console.log(3);setTimeout(function(){console.log(4) },0); fn1(); new …

asp.net ajax技巧6

今天继续学习章立民的书。讲到两个updatepannel的嵌套。比如下面的例子<asp:ScriptManager ID"ScriptManager" runat"server" /> <asp:UpdatePanel ID"OuterPanel" runat"server" UpdateMode"Conditional&q…

js eventLoop

eventLoop详解 宏任务和微任务的一个小事 在此补充一点顺序&#xff1a; 宏任务&#xff1a;setTimeout > setImediate 微任务&#xff1a;process.nextTick > promise.then

MYSQL 如果把数据文件保存到其他磁盘里

有人问起分开存储数据文件的问题。现在写下来。为了突破磁盘搜索的瓶颈。我们要把MYSQL的数据和索引保存到其他不同的磁盘中。目前还只是支持MyISAM引擎。在MYSQL中&#xff0c;官这个叫象征性链接。1、在WINDOWS下的象征性链接。数据库目录&#xff1a;E:\LAMP\mysql5\data数据…

《浏览器播放RTSP方案》之 VLC插件播放RTSP视频流

VLC插件播放RTSP视频流多版本chrome安装安装vlc软件开启浏览器的NPAPI设置编写测试页插件设置其他问题最后目前网页对于RTSP流直接播放不支持&#xff0c;目前有插件和转流两种方式&#xff0c;这里针对vlc插件播放做一个简单的梳理。 查看官网教程 vlcWebPlugin, 得知其浏览器…

[导入]ASP常用函数:getIMG()

目前还是有BUG的,最新的测试页面在: http://www.reallydo.com/getimg.asp正则分析页面在: http://jorkin.reallydo.com/article.asp?id380 发现BUG请在后面留言,谢谢. 1.31修正src后面有空格不能正确匹配.已修正.src为空时出错.已修正.发现BUG: 图片路径有多个空格时只能保留一…

《浏览器播放RTSP方案》之 VXGPlayer插件播放RTSP视频流

VXGPlayer插件播放RTSP视频流 总体来说vxgplayer是付费插件&#xff0c;更多支持的功能可以去官网详询。作为一个demo研究&#xff0c;检索资料和实现总结如下&#xff1a; 环境搭建 别人有一篇文章总结的很好&#xff0c;就不赘述。直接上链接 整合vxgPlayer使chrome支持vx…

MYSQL优化考虑十个方面

1&#xff09;索引 2&#xff09;sql优化 3&#xff09;锁 4&#xff09;延迟 5&#xff09;参数优化 6&#xff09;连接数 7&#xff09;cpu 8&#xff09;iops 9&#xff09;磁盘 10&#xff09;内存 转载于:https://www.cnblogs.com/zeenzhou/p/11344485.html

vite + vue2 + eslint 项目配置

// npm 和 yarn 皆可&#xff0c;这里以 yarn 举例安装 vue2 环境 yarn create vite// 选择 framework: vanilla // 不选 vue&#xff0c;是因为vue默认是vue3// 自行安装环境 yarn add vite-plugin-vue2 vue-template-compiler -D yarn add vue vue-router vuex // 配置 vue …

初学 Delphi 嵌入汇编[29] - 寄存器所能接受的数值范围

譬如 EAX AX AH AL 四个储存器, 真实存在的其实只有一个 EAX, AX AH AL 不过是不同的访问方式.11111111 11111111 11111111 11111111 : EAX11111111 11111111 11111111 11111111 : AX11111111 11111111 11111111 11111111 : AH11111111 11111111 11111111 11111111 : AL//譬如 …

element form 自定义校验

element-ui 表单校验总结 作为一名前端开发&#xff0c;会遇到各种各样的表单处理。为了给用户更好的体验&#xff0c;行内表单校验及错误展示被广泛使用。由于工作中用到element-ui较多&#xff0c;所以这里简单谈一谈日常工作遇到的【有意思】的表单交互。 element-ui官网链…

通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行(转)

本文将讨论&#xff1a; • 缓存和 Forms 身份验证 • 视图状态和会话状态 • 配置文件属性序列化 • 线程池饱和 • 模拟和设置配置文件 本文使用了下列技术&#xff1a; .NET Framework、ASP.NET、Windows Server 2003 本页内容 LoadControl 和输出缓存会话和输出缓存Fo…

cocos2d-x 3.0 alpha1 生成Qt qch帮助文档

Qt的助手挺好用的. 比chm好多了 cocos2d-x使用doxygen生成文档. 默认生成的是html形式, 需要打开浏览器, 这个是比较耗资源吧 可以修改配置, 让doxygen同时输出qch形式的帮助文档 打开 \cocos2d-x-3.0alpha1\docs\doxygen.config 修改其中几项: GENERATE_QHP YESQHP_NAMESPA…