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

基本概念

Sentry 是什么

通常我们所说的 Sentry 是指 Sentry 的后端服务,由 Django 编写。8.0 版本使用了 React.js 构建前端 UI。使用 Sentry 前还需要在自己的应用中配置 Sentry 的 SDK —— 通常在各语言的包管理工具中叫做 Raven。

当然,Sentry 还可以是其公司所提供的 Sentry SaaS 服务。

如果你正在寻找国内类似的服务,不妨试用一下Fundebug!Fundebug目前支持前端JavaScript、微信小程序、后端Nodejs的bug监控。以SaaS的形式服务,并提供基础的免费版本。

DSN(Data Source Name)

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

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

PROTOCOL 通常会是 http 或者 https,HOST 为 Sentry 服务的主机名和端口,PATH 通常为空。

部署 Sentry 服务

安装

由于 Sentry 依赖众多,建议在独立的 Virtualenv 中安装。Sentry 依赖 Unix 兼容系统、Python 2.7、 PostgreSQL 以及 Redis,确保你已经安装好了这些依赖。考虑到 Python WSGI 应用的部署, 你可能还需要 Nginx 或者 Apache 2 作为前端服务器,以及 supervisor 管理应用。

有了这些以后,Sentry 的安装就非常简单:pip install sentry

配置

启动

我自己写了个简单的 Supervisor配置文件,可供参考。

使用 Sentry SDK

Sentry 的 SDK 通常在各语言的包管理器中成为 Raven,使用起来也非常简单。以 Python 为例:

from raven import Client
client = Client('https://<key>:<secret>@app.getsentry.com/<project>') try:
1 / 0
except ZeroDivisionError:
client.captureException()

这样就可以使用 client 对象向 Sentry 服务器中提交日志信息了。

当然 Sentry 还为知名 web 框架提供了便捷的封装,以 Python Flask 框架为例:

sentry = Sentry(dsn='http://public_key:secret_key@example.com/1')

def create_app():
app = Flask(__name__)
sentry.init_app(app, logging=True, level=logging.ERROR)
return app

添加上下文信息

为了解决问题,通常还会需要上下文信息重现当时的问题,以及快速了解影响的范围。

client.user_context({
'email': request.user.email
})

使用 Sentry web 服务

搜索

Sentry 的搜索支持 token:value 语法,例如:

is:resolved user.username:"Jane Doe" server:web-8 example error

支持的 token 包括:

  • is:问题状态(resolved, unresolved, muted)
  • assigned:问题的分配状态(用户 ID、用户 Email 或者 me
  • release:指定发布版本中出现的问题
  • user.id
  • user.email
  • user.username
  • user.ip

通知

合并&样本

数据过滤

和其它服务集成

和 GitLab 集成

和 Trello 集成

参考:

- [Sentry Python 文档](https://docs.getsentry.com/on-premise/clients/python)

来源:https://blog.csdn.net/scdxmoe/article/details/53539216

【转】Sentry介绍的更多相关文章

  1. 【转】关于Sentry

    1. Sentry介绍及使用 Sentry 是一个实时事件日志记录和汇集的平台.其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈. 备注:国内有同类型的产品Fundebug,提供网 ...

  2. 关于Sentry(转)

    原文:http://blog.csdn.net/largetalk/article/details/8640854 1. Sentry介绍及使用 Sentry is a realtime event ...

  3. Docker手动搭建sentry错误日志系统

    Sentry介绍 在开发过程中,我们通过debug来排查bug,并且使用logging来记录系统的错误.但是logging有很多不足: 必须登陆到服务器查看日志文件 需要主动去查询 输出日志方式无法把 ...

  4. sentry SSRF

    目录 Sentry介绍 exp测试步骤 自己构造blind发包 修复方式 参考 Sentry介绍 Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建.一般在url上.或者logo上 ...

  5. Centos7通过Docker安装Sentry(哨兵)

    Docker介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制, ...

  6. 业务线接入前端异常监控sentry

    1.前端异常处理的框架对比   是否开源 收费 语言 监控范围 sentry 是 自己搭建服务器(免费)价格 英文 Angular.AngularJs.Backbone.Ember.JavaScrip ...

  7. hadoop sentry错误记录

    1.报无法实例化metastore连接 hive> show tables; FAILED: SemanticException org.apache.hadoop.hive.ql.metada ...

  8. CentOS 使用 Docker 安装 Sentry

    官网介绍:Sentry是一个实时事件日志记录和汇集的日志平台,其专注于错误监控,以及提取一切事后处理所需的信息.他基于Django开发,目的在于帮助开发人员从散落在多个不同服务器上的日志文件里提取发掘 ...

  9. Expo大作战(十七)--expo结合哨兵(sentry)进行错误异常记录

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

随机推荐

  1. 《java入门第一季》之面向对象静态内部类和非静态内部类的区别

    很感谢在内部类章节,"开心阳"先生给与的建议.使用静态内部类.这里就简单说一下静态内部类的使用. package com.devin; public class MyMain{ p ...

  2. 基于web的jfreechart的使用

    这个模块的主要步骤就是: 前台通过struts调用后台,通过JFreeChart产生图片格式的图表,存储在某个位置,然后前台jsp再去调用图片. 来开工. JFreeChart的简介大家请百度. 首先 ...

  3. Android中代码运行指定的Apk

    有时候,当我们编写自己的应用的时候,需要通过代码实现指定的apk,安装指定的主题,或者安装新的apk.可以通过以下方法实现: private void installAPK(String apkUrl ...

  4. 《java入门第一季》之面向对象面试题(继承中构造方法的关系)

    /* 继承中构造方法的关系 A:子类中所有(子类的有参和无参)的构造方法(默认都会访问父类)中(空参数)的构造方法,默认访问父类空参数构造,不默认访问有参数构造 B:为什么呢? 因为子类会继承父类中的 ...

  5. 关于SMALI语法

    dalvik字节码有两种类型,原始类型和引用类型.对象和数组是引用类型,其它都是原始类型.V  void,只能用于返回值类型Z  booleanB  byteS  shortC  charI  int ...

  6. 2016/1/9:深度剖析安卓Framebuffer设备驱动

    忙了几天,今天在公司居然没什么活干 ,所以早上就用公司的电脑写写之前在公司编写framebuffer的使用心得体会总结,这也算是一点开发经验,不过我还没写全,精华部分还是自己藏着吧.直到下午才开始有点 ...

  7. 集群通信组件tribes之应用程序处理入口

    Tribes为了更清晰更好地划分职责,它被设计成用IO层和应用层,IO层专心负责网络传输方面的逻辑处理,把接收到的数据往应用层传送,当然应用层发送的数据也是通过此IO层发送,数据传往应用层后必须要留一 ...

  8. RedHat系列软件管理(第二版) --脚本安装

    RedHat系列软件管理 --脚本安装 一.解压缩 tar -zxvf webmin-1.700.tar.gz 二.进入相关目录 cd webmin-1.700 三.如果此时执行./configure ...

  9. Shell编程入门(第二版)(下)

    ... ... command n done #select把关键字中的每一项做成类似表单,以交互的方式执行do和done之间的命令 示例-select.sh [python] view plainc ...

  10. 带三方登录(qq,微信,微博)

    实现QQ.微信.新浪微博和百度第三方登录(Android Studio) 前言:  对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于 ...