热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sentry的使用go_sentry的搭建和使用

sentry的使用go_sentry的搭建和使用,Go语言社区,Golang程序员人脉社


Sentry是一个开源应用程序监控平台,可帮助您实时识别问题。支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。


Sentry 服务支持多用户、多团队、多应用管理,每个应用都对应一个 PROJECT_ID,以及用于身份认证的 PUBLIC_KEY 和 SECRET_KEY。由此组成一个这样的 DSN:


{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}


Sentry搭建有两种方式:


1.通过Python安装


2.通过Docker容器安装


这里我们采用Docker安装(Docker的安装教程较简单,在这里就不重复造轮子)


搭建步骤


7月份的时候作者更新了一版,将安装的流程写成了一个shell脚本(./install.sh)


可能需要对包含的docker-compose.yml文件进行修改以满足您的需求或环境(例如添加GitHub凭据)。如果要执行这些操作,请在运行安装脚本之前执行这些操作。


自定义配置的推荐方法是按以下顺序使用以下文件:


config.yml


sentry.conf.py


.env w /环境变量


需要注意的是,安装所须要的要求是


MIN_DOCKER_VERSION='1.10.0' //docker -v


MIN_COMPOSE_VERSION='1.17.0' //docker-compose -v


MIN_RAM=3072 # MB //你的内存至少3G


如无意外, 一切正常, 端口默认是9000, 本地的话可以直接打开localhost:9000访问



环境搭建好了,现在我们就来开始感受sentry的好处吧


Sentry在React的使用


要将Sentry与React应用程序一起使用,您需要使用@sentry/browser(Sentry的浏览器Javascript SDK)


# Using yarn


$ yarn add @sentry/browser


# Using npm


$ npm install @sentry/browser


在Sentry中完成项目设置后,Sentry将为您提供一个我们称之为DSN或数据源名称的值。


import * as Sentry from '@sentry/browser';//DSN由几部分组成,包括协议,公钥,服务器地址和项目标识符。


Sentry.init({dsn: "https://55b49309d120441bb162084e21e8ddbd@sentry.io/1521000"});


@sentry/browser将报告从您的应用程序触发的任何未捕获的异常。你也可以手动发送错误信息到sentry


浏览器端特有的集成功能:


Breadcrumbs 面包屑 包含以下选项,默认全部集成:


{


beacon:boolean; //记录使用Beacon API完成的HTTP请求


console: boolean; //捕捉console信息


dom: boolean; //捕捉所有点击以及键盘事件


fetch: boolean; //记录使用Fetch API完成的HTTP请求


history: boolean; //记录history的变化


sentry: boolean; //记录主动上报的事件


xhr: boolean; //记录使用XMLHttpRequest API完成的HTTP请求


}


GlobalHandlers 全局设置是否需要对所有未捕获错误或未处理的失败响应进行处理


{


onerror:boolean;


onunhandledrejection:boolean;


}


LinkedErrors 递归查询错误堆栈的最深层次数和查询字段


{


key: string;


limit: number;


}


ReportingObserver 设置Sentry介入特定类型的ReportingObserver API并将特定类型的事件上报到Sentry,以下三类默认都包含。


{


types:[];


}


TryCatch 这个默认集成功能使用try/catch语句来包裹原生的定时及事件相关API来捕获这些可能的异步错误


(setTimeout, setInterval, requestAnimationFrame, addEventListener/removeEventListener)


UserAgent 这个功能为上报的信息附加了浏览器的user-agent,帮助我们更好的了解和区分该用户的使用环境


//删除某集成


Sentry.init({


dsn:'https://@sentry.io/',


integrations: integratiOns=>{//删除Breadcrumbs集成


return integrations.filter(integration => integration.name !== 'Breadcrumbs');


}


});//修改某集成


Sentry.init({


dsn:'https://@sentry.io/',


integrations: integratiOns=>{//关闭Breadcrumbs集成自动收集console的功能


return [...integrations, new Sentry.Integrations.Breadcrumbs({ console: false})];


}


});


let errorVariabletry{console.log(errorVariable.slice(0,3))


}catch(e){//捕获异常的错误


Sentry.captureException(e,{


tags: {


locale:'en-us'}})


}


运行代码,毫无例外,sentry接送到了一个语法错误



但是细心的小伙伴可能发现了,项目进行打包之后代码变得极其难阅读,这样的报错信息对于我们来说是不友好的


还好的是,Sentry supports un-minifying Javascript via source maps.


第一步,先安装 @sentry/cli 工具


npm install -g @sentry/cli


我们在项目根目录下创建.sentryclirc文件


查询组织的slug可以访问https://sentry.io/api/0/organizations/


查询项目的slug可以访问https://sentry.io/api/0/organizations/{organization_slug}/projects/


//.sentryclirc


[defaults]


url=https://sentry.io/


org={organization_slug}


project={project_slug}


如果是首次配置,我们在需要webpack打包的文件目录下运行sentry-cli login命令进行授权,命令行将会指引我们打开浏览器新建一个authentication token,然后sentry-cli 自动将我们填入的token写入了我们新建的.sentryclirc配置文件中



安装@sentry/webpack-plugin


npm install -S @sentry/webpack-plugin


在config-overrides.js修改


const {


override,


addWebpackPlugin


}= require("customize-cra")


const SentryCliPlugin= require('@sentry/webpack-plugin');


module.exports=override(


addWebpackPlugin(newSentryCliPlugin({


release:'project20190804',


include:'build',


urlPrefix:'~/',


ignore: ['node_modules'],


}))


)


判断文件是否上传成功,可以在sentry.io上查看



可以看到文件已经上传成功,其中~代表页面的协议加域名,所以可以检查下具体问题是不是能够访问的,避免SourceMap解析失败


经过了上面的一系列操作,让我们重新打包运行程序;果然没让baba失望!



顺带提一下,为了避免本地调试的时候也将错误上传上去,我们可以通过Allowed Domains属性进行配置






推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 分享2款网站程序源码/主题等后门检测工具
    本文介绍了2款用于检测网站程序源码和主题中是否存在后门的工具,分别是WebShellkiller和D盾_Web查杀。WebShellkiller是一款支持webshell和暗链扫描的工具,采用多重检测引擎和智能检测模型,能够更精准地检测出已知和未知的后门文件。D盾_Web查杀则使用自行研发的代码分析引擎,能够分析更为隐藏的WebShell后门行为。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
author-avatar
mobiledu2502926703
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有