博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sentry 介绍
阅读量:4028 次
发布时间:2019-05-24

本文共 1869 字,大约阅读时间需要 6 分钟。

https://blog.windrunner.me/tool/sentry.html

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 服务。

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

配置

启动

我自己写了个,可供参考。

使用 Sentry SDK

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

from raven import Clientclient = Client('https://
:
@app.getsentry.com/
')try: 1 / 0except 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)

转载地址:http://tylbi.baihongyu.com/

你可能感兴趣的文章
单纯的把Y通道提取出来能正确显示出灰度图来为什么我的Qt就显示不出来呢转换有问题呀?
查看>>
YUV420只绘制Y通道
查看>>
yuv420 还原为RGB图像
查看>>
LED恒流驱动芯片
查看>>
驱动TFT要SDRAM做为显示缓存
查看>>
使用file查看可执行文件的平台性,x86 or arm ?
查看>>
qt5 everywhere 编译summary
查看>>
qt5 everywhere编译完成后,找不到qmake
查看>>
arm-linux开机读取硬件时钟,设置系统时钟。
查看>>
交叉编译在x86上调试好的qt程序
查看>>
/dev/input/event0 键盘输入
查看>>
qt 创建异形窗体
查看>>
可重入函数与不可重入函数
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
输入设备节点自动生成
查看>>
opencv test code-1
查看>>
eclipse 导入先前存在的项目
查看>>
GNU hello代码分析
查看>>
Qt继电器控制板代码
查看>>