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…

sql server 2005 COUNT_BIG (Transact-SQL)

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

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

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

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

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

如何去掉DataTable中的重复行(新增.net 2.0中最新解决方法---简便)

.net 1.1中的解决方法(转)1建立一个DataSetHelper类(DataSetHelper.cs) publicclassDataSetHelper...{ public DataSet ds; public DataSetHelper(ref DataSet DataSet) ...{ ds DataSet; } public DataSetHelper() ...{ ds null; } p…

Centos 系统安装NetCore SDK命令以及一系列操作(2)

ok,接下来安装dotnetCore的SDK&#xff0c;访问&#xff1a;https://dotnet.microsoft.com/download&#xff0c; 如下图&#xff0c;选择Linux&#xff0c; 选择一下这个Linux的发行版&#xff0c;我们选择Centos就行&#xff0c;然后执行这些命令去安装SDK&#xff0c;地址如…

这该死的高度,height,clientHeight,scrollHeight,offsetHeight

引言: 虽然有时候界面的设置不是我们这些后台代码人员的工作,但是有时候却难以理解控件生成时的一些怪事,比方在学习webabcd的扩张GridView中固定列时,你或许已经被其中的height,clientHeight,scrollHeight,offsetheight弄得晕晕的了,当然这些都是网页制作的一个基础,将其记下,…

C#高级语法基础知识总结6——字符串集合

字符串 集合 列表声明 Var intListnew List<int>();Var racersnew List<Racer>();List<int> intListnew List<int>(10);//大小为10&#xff0c;倍数增加 使用Capacity属性可以获取和设置集合的容量 使用Count属性可以获取集合的元素个数 Add()方法添加…

浏览器播放rtsp视频流方案(vlc转http方案)

一.vlc播放器转成http&#xff0c;在浏览器用video标签播放 1.下载vlc播放器 网址:https://www.videolan.org/ 2.安装并打开之后&#xff0c;点击媒体 3.点击打开网络串流&#xff0c;进入到下个页面&#xff0c;在输入框输入自己的rtsp流 4.点击播放旁边的小三角号&#xff0c…

浏览器播放rtsp视频流方案(ffmpeg + nginx转m3u8)

1.下载ffmpeg &#xff0c;传送门&#xff1a;https://ffmpeg.en.softonic.com/ 2.配置环境变量 右击我的电脑---->点击属性&#xff0c;打开左侧高级系统设置 点击下方的环境变量 在下方系统变量中找到path变量&#xff0c;选中点击下方编辑&#xff0c;别点成删除&#…

浏览器播放rtsp视频流方案(ffmpeg + nginx转rtmp)

之前已经更新vlc和m3u8的方案了&#xff0c;这个是最后一个方案&#xff0c;同时&#xff0c;转rtmp的方案也是我在用的 1.下载ffmpeg &#xff0c;传送门&#xff1a;https://ffmpeg.en.softonic.com/ 2.配置环境变量 右击我的电脑---->点击属性&#xff0c;打开左侧高级…

uniapp+typeScript+vue3.0+vite

最近公司需要开发新版小程序&#xff0c;思考了一下&#xff0c;决定还是用最新的技术进行开发&#xff0c;同时也能锻炼到自己&#xff0c;废话不多说&#xff0c;开搞&#xff1a; 一.首先打开uniapp的官网&#xff1a;uni-app官网 //环境安装 //全局安装vue-cli npm instal…

纪中七日游——总结篇 DAY1AB

DAY 1 B 组 T1 游戏 Description Alice和Bob在玩一个游戏&#xff0c;游戏是在一个N*N的矩阵上进行的&#xff0c;每个格子上都有一个正整数。 当轮到Alice/Bob时&#xff0c;他/她可以选择最后一列或最后一行&#xff0c;并将其删除&#xff0c; 但必须保证选择的这一行或这一…

系列十一(实战)、发送 接收带标签的消息(Java操作RocketMQ)

一、发送 & 接收带标签的消息 1.1、概述 消息的种类纷繁复杂&#xff0c;不同的业务场景需要不同的消息&#xff0c;基于此RocketMQ提供了消息过滤功能&#xff0c;通过Tag或者Key进行区分&#xff0c;本章介绍Tag&#xff0c;我们再往一个Topic里面发送消息的时候&#x…

Comments are not permitted in JSON

用vsCode开发uniappvue3.0TypeeScriptvite项目的时候&#xff0c;打开json文件报错Comments are not permitted in JSON。 解决办法如下&#xff1a; 1.点击右下角 2.输入JSON选择第二个JSON with Comments即可

uni-nav-bar设置height自适应高度

今天拿到ui设计的图之后&#xff0c;发现需要用到自定义navbar 给它设置height的时候&#xff0c;一开始用的iphone X的屏幕&#xff0c;像素单位用的rpx&#xff0c;发现切换到别的屏幕就不对了 然后还是用iphone X的屏幕&#xff0c;像素改成固定的88px&#xff0c;发现有一…

css文本超出容器宽度自动换行及超过行数加省略号...

css文本超过div的宽度时&#xff0c;让它进行自动换行&#xff0c;并且超过div高度时候&#xff0c;在最后一行加省略号... 废话不多说&#xff0c;上代码 display: -webkit-box;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;white-space: normal !import…

Dubbo+ZooKeeper搭建的简单示例

一、简介 基于Dubbo ZooKeeper实现的分布式架构&#xff0c;调用接口方法就像调用本地方法一样调用远程服务。 来自Dubbo官网的架构图&#xff1a; 节点角色说明 节点角色说明Provider暴露服务的服务提供方Consumer调用远程服务的服务消费方Registry服务注册与发现的注册中心M…

uni-calendar更改打点颜色实现签到和缺勤不同打点颜色效果

1.公司要实现打卡功能&#xff0c;发现uni-calendar插件不支持不同打点颜色的效果&#xff0c;所以就自己改一下源码 下图是公司ui设计师给的图 2.我们打开调试&#xff0c;可以看到红色打点的样式是.uni-calendar-item__weeks-box-circle 3.我们复制下来这个class名&#xff…

分布式 dynamips+dyangen (更新于07.3.30)

更新内容&#xff1a;很多网友都反映用此文方法行不通&#xff0c;现象为&#xff1a;分布在各计算机上的路由器能起来&#xff0c;但互联的端口是Down的&#xff0c;以至于ping 不通。在此特别感谢 flyxj 网友QQ联系到我才引起我的高度注视使问题得到解决&#xff0c;不会再给…