概念

js错误日志统计工具,官网文档

以下说明前提条件都是raven-js

日志收集必要条件

sentry平台帐号注册

raven客户端安装

sentry服务平台

进行首页->新建项目之后,点击settings,可以设置错误日志收集条件,其中客户

端dsn(结构:协议://公钥:私钥@sentry平台地址/sentryId), 在sentry

客户端raven安装配置中会用到。

sentry客户端raven

安装步骤

根据使用平台选择raven(sdk选择官网有说明)。

配置方法如下(我用的是react,使用的是import方式,其中url就是sentry服务端获取的dsn,省略号是配置options):

import Raven from 'raven-js';

Raven.config(url, {

release: '1.0.0',

whitelistUrls: [

...

],

...

}).install();

主要参数说明(所有上报都会携带的参数,公用)

tags(对应sentry服务平台错误详情中的tags,便于分析错误发生的情景):

user(对应sentry服务平台错误详情中的user,便于记录触发错误的具体用户):

extra(对映sentry服务平台错误详情中的Additional Data,便于各别信息的统计):

whitelistUrls: 上报到sentry服务平台的白名单,假如触发错误的js链接脚本host不在其值里,就无法上报错误。

错误日志上报(以我用的raven-js作为说明,其他可查看源代码)

被动上报

js运行期间,如果发生错误时,错误(比如点击回调函数执行报错,ajax同源请求

报错等)没有被try catch或者以其他方式捕捉,就会冒泡到window,触发

[onerror][2]事件。当然资源加载失

败,比如img, script,会执行该元素onerror不会冒泡window.onerror,

onerror具体声明如下:

window.onerror = function(messageOrEvent, source, lineno, colno, error) { ... }

因为window.onerror是ECMAScript不标准的属性,不同浏览器实现可能会略有

不同,error参数是raven上报日志的关键(ps: 没有error,就找不到错误栈

stack,自然就追踪不到问题),所以raven客户端巧用try, catch对错误进行捕

捉(ps:catch获取到的error对象有raven需要的东西,比如错误栈),然后采用

captureException进行错误上报,核心源代码如下:

对addEventListener、setTimeout、setInterval、

requestAnimationFrame等回调函数进行了如上包装,这样就可以保证这些函数

的回调报错时候可以有错误栈,同理,可以根据项目架构对可能出现问题进行

try..catch包装,采用手动上报,做到最大限度错误日志上报。

主动上报

采用raven.captureException(msg/e, options),第一参数可以是字符串,

也可以是Error对象(ps: raven内部会对所传参数进行判断,如果是msg,会转换

成Error对象),第二个参数options可设置参数同raven配置安装时可以用的参数

同,只不过这里用到的参数作用域只限于此条错误日志,raven.config中用的

options对所有错误日志都生效。

应用可使用的监听钩子(*.adEventListener(如下事件,callback)

ravenSuccess | onRavenSuccess: raven上报成功之后会dispatch此事

件,可以监听此事件做一些其他的事情,比如上报到其他的平台等等。

ravenFailure | onRavenFailure:raven上报失败之后会dispatch此事

件,可以监听此事件做一些其他的事情,比如上报到其他的平台等等。

ravenHandle | onRavenHandle:手动调用Raven.captureException之

后会dispatch此事件,可以监听此事件做一些其他的事情,比如上报到其他的平台

等等。

总结一下就是根据自己的情况,可以设置一下whitelistUrls, ignoreErrors,

ignoreUrls,上报比例以及javascript跨域资源错误统计处理(crossorigin),如果你使用webpack,可以在output中添加一个参数crossOriginLoading,webpack编译时会自动给按需加载的js获取加上crossorigin,说明如下:

服务端response头部添加Access-Control-Allow-Origin: *。

建议

公钥,私钥信息不要存放于前端页面,可以放在中间服务器,走客户端-》中间服务-》sentry服务。

php sentry,sentry使用相关推荐

  1. Hue、Hive、Sentry、Airflow、Oozie

    本篇博文主要讲解的是Hue这个开源软件.通过阅读本博客,可以从宏观的角度了解Hue这个应用. 本文介绍了什么是Hue,Hue的架构,Hue的特点,在Hue上面使用Hive的优点,在Hue上浏览文件和数 ...

  2. sentry日志管理系统安装以及使用教程

    Sentry 是一个开源的实时错误报告工具,支持 web 前后端.移动应用以及游戏,支持 Python.OC.Java.Go.Node.Django.RoR 等主流编程语言和框架 ,还提供了 GitH ...

  3. Apache Sentry架构介绍

    2019独角兽企业重金招聘Python工程师标准>>> cdh版本的hadoop在对数据安全上的处理通常采用Kerberos+Sentry的结构. kerberos主要负责平台用户的 ...

  4. 什么是 Apache Sentry , Apache Sentry 介绍

    Apache Sentry是Hadoop中的一个基于角色的细粒度授权组件.Sentry可以在Hadoop集群上对通过身份认证的用户和应用程序控制数据访问权限.Sentry开箱即用的支持Hive,Hiv ...

  5. Apache Sentry 第一弹:Server启动、连接Hue、分组详解

    2019独角兽企业重金招聘Python工程师标准>>> 前言: Sentry是Hadoop安全方面的一个开源组件,目前还在孵化中,地址:https://sentry.incubato ...

  6. Sentry For Vue 完整接入详解(2021 Sentry v21.8.x)前方高能预警!三万字,慎入!

    内容源于:https://docs.sentry.io/platforms/javascript/guides/vue/ 系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创 ...

  7. sentry mysql_Apache Sentry安装及简单使用

    1 环境描述 三台hadoop集群,分别是master.slave1和slave2.下面是这三台机器的软件分布: master:NameNode.ZK.HiveMetaSotre.HiveServer ...

  8. vue + sentry监控平台

    vue + sentry监控平台 1. 在sentry平台创建账户 平台地址: sentry. 2. 创建组织,创建项目 需要记住team名字,和项目名字,后续关联需要用到 3. 在项目中引入sent ...

  9. CentOS6.8搭建Sentry环境

    2019独角兽企业重金招聘Python工程师标准>>> 安装第三方依赖包(redis依赖包,python依赖包,pip依赖包等必须提前安装): yum install -y zlib ...

最新文章

  1. was、ihs、 mq、 db2的版本查询
  2. 将Jersey与Spring整合
  3. nacos配置刷新失败导致的cpu上升和频繁重启,nacos配置中心源码解析
  4. 快速入门Matplotlib
  5. 5分钟 学会 webpack4.0之 加薪必备
  6. SQL 一次插入多条记录
  7. 修改 oracle 数据库 TNSLSNR.exe 占用 8080 端口
  8. github入门教程最全中文版(官方)
  9. 服务器显示未识别网络怎么办,未识别网络怎么解决
  10. Java设计模式实战 ~ 观察者模式分析与实战
  11. php控制舵机,分享一个关于SG90舵机的实验(+串口控制)
  12. 那些吸引眼球的微信标题你会么?
  13. Corsiniの时光漏
  14. springboot集成邮箱配置ssl或tls协议
  15. 【朝花夕拾】Android编码风格篇
  16. 堡垒主机是堡垒机吗?两者有什么关系?
  17. 免费QQ群管助手-帮你管理QQ群
  18. 使用Office UI fabric react icons显示图标
  19. java小游戏之飞机大战
  20. MATLAB 函数求极限,定积分,一阶导,二阶导(经典例题)

热门文章

  1. 三国志战略版:国庆英雄集结解说_三
  2. 多元正态分布的条件分布
  3. 【Revit二次开发】事务和事务处理(Transaction and FailureHandlingOptions)
  4. 过敏性鼻炎如何预防才好?
  5. opencv入门书籍推荐 opencv-Python书籍推荐
  6. 初二英语上册50页2d翻译,初一英语上册41页2d翻译
  7. 电信泄露客户信息,导致客户被骗损失钱财
  8. 前端单页面富应用(SPA)的实现
  9. AndroidStudio问题: Missing essential plugin
  10. bullet constraints bullet 约束