Sentry错误日志监控使用方法解析


Posted in Python onNovember 12, 2020

无论作为新手还是老手程序员在程序的开发过程中,代码运行时难免会抛出异常,而且项目在部署到测试、生产环境后,我们便不可能像在开发时那样容易的及时发现处理错误了。一般我们都是在错误发生一段时间后,错误信息才会传递到开发人员那里,然后一顿操作查看程序运行的日志,就熟练使用awk和grep去分析日志,但是往往我们会因为日志中缺少上下文关系,导致很难分析真正的错误是什么。

Sentry由此应运而生成为了解决这个问题的一个很好的工具,设计了诸多特性帮助开发者更快、更方面、更直观的监控错误信息。

关于日志管理

随着不断的开发应用变得越来越复杂,输出日志五花八门,有print的,有写stdout的,有写stderr的, 有写logging的,也有自定义xxx.log的。那么这将导致平台应用日志分布在各个地方,无法统一管理。而且可能用的还不止一种开发语言,想规范和统一日志不是一件容易的事。所以这也是我们为什么使用Sentry的原因,

Sentry的优点

  • Sentry是一个集中式日志管理系统。它具备以下优点:
  • 多项目,多用户
  • 界面友好
  • 可以配置异常触发规则,例如监控到程序出现异常后发送邮件
  • 支持主流语言接口,本篇博客值介绍在python中的应用,其他语言自行阅读官方文档

Sentry目前支持的语言众多,下面展示一部分:

Sentry错误日志监控使用方法解析

安装和使用

Sentry支持部署到本地服务器,本博文不做过多介绍,可参照官方文档进行部署:

本地部署官方文档

对于大所属个人和小型企业推荐使用Sentry官方提供的云服务,进行快速搭建属于自己的错误日志监控系统,只需要去官网进行注册一个Sentry账号即可

1、注册新账号

官网地址

注册新账号地址

Sentry错误日志监控使用方法解析

Sentry免费版可用功能:

  • 每月10k 错误日志上限
  • 支持所有平台和语言,功能无缩水
  • 无限项目数量,仅单用户访问,不提供团队功能

如果想享受更多功能和服务可以看这里:付费版价格策略

2、安装SDK

Sentry通过在应用程序运行时中使用SDK来捕获数据。这些是特定于平台的,允许Sentry深入了解您的应用程序的工作方式。

使用pip以下命令安装Python SDK:

pip install --upgrade sentry-sdk==0.10.2

3、配置SDK

在Sentry中完成项目设置后,您将获得一个我们称之为DSN或数据源名称的值。它看起来很像标准URL,但它实际上只是Sentry SDK所需配置的表示。它由几部分组成,包括协议,公钥,服务器地址和项目标识符。

在应用程序的设置中尽早导入并初始化Sentry SDK:

import sentry_sdk
sentry_sdk.init("https://ae5f2eaff8404dbdb2e0d75f7466449d@sentry.io/我的") # 注册账号后在文档中自动生成

4、捕捉你的第一个异常

您可以通过在应用程序中插入除以零表达式来导致Python错误:

division_by_zero = 1 / 0

在云监控系统中显示的错误信息:

Sentry错误日志监控使用方法解析

5、在django中的使用

安装:sentry-sdk

pip install --upgrade 'sentry-sdk==0.10.2'

要配置SDK,请在settings.py文件中使用Django集成对其进行初始化:

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
  dsn="https://ae5f2eaff8404dbdb2e0d75f7466449d@sentry.io/我的",
  integrations=[DjangoIntegration()]
)

您可以通过创建触发错误的路由轻松验证Sentry安装:

from django.urls import path

def trigger_error(request):
  division_by_zero = 1 / 0

urlpatterns = [
  path('sentry-debug/', trigger_error),
  # ...
]

访问此路由将触发程序将捕获的错误。

一旦你完成上面的配置,以后系统发生的所有错误异常都会被自动记录到Sentry,通过错误日志监控平台就可以看到对应的日常,并且一旦发生异常会发送邮件到你的邮箱,同样可以看到异常的错误描述信息,更多详细使用教程你请参照官网文档。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python求列表交集的方法汇总
Nov 10 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
python Django编写接口并用Jmeter测试的方法
Jul 31 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
python3实现微型的web服务器
Sep 03 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
如何验证python安装成功
Jul 06 Python
Python实现自动签到脚本的示例代码
Aug 19 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
python 利用opencv实现图像网络传输
Nov 12 #Python
Anaconda详细安装步骤图文教程
Nov 12 #Python
Jupyter Notebook安装及使用方法解析
Nov 12 #Python
利用Python发送邮件或发带附件的邮件
Nov 12 #Python
Python如何使用ConfigParser读取配置文件
Nov 12 #Python
Python使用windows设置定时执行脚本
Nov 12 #Python
Django restful framework生成API文档过程详解
Nov 12 #Python
You might like
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
JQuery实现自定义对话框的代码
2008/06/15 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
python实现点对点聊天程序
2018/07/28 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
公司离职证明范本
2014/01/13 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
初三语文教学反思
2016/03/03 职场文书
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python