Sentry错误日志监控你会用了吗?

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

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

关于日志管理

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

Sentry的优势

Sentry是一个集中式日志管理系统。它具有如下优势:服务器

  1. 多项目,多用户
  2. 界面友好
  3. 能够配置异常触发规则,例如监控到程序出现异常后发送邮件
  4. 支持主流语言接口,本篇博客值介绍在python中的应用,其余语言自行阅读官方文档

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

安装和使用

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

本地部署官方文档url

对于大所属我的和小型企业推荐使用Sentry官方提供的云服务,进行快速搭建属于本身的错误日志监控系统,只须要去官网进行注册一个Sentry帐号便可spa

一、注册新帐号debug

官网地址设计

注册新帐号地址

Sentry免费版可用功能:

  1. 每个月10k 错误日志上限
  2. 支持全部平台和语言,功能无缩水
  3. 无限项目数量,仅单用户访问,不提供团队功能

若是想享受更多功能和服务能够看这里:付费版价格策略

二、安装SDK

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

使用pip如下命令安装Python SDK 

pip install --upgrade sentry-sdk==0.10.2

三、配置SDK

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

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

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

四、捕捉你的第一个异常

您能够经过在应用程序中插入除以零表达式来致使Python错误:

division_by_zero = 1 / 0

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

五、在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,经过错误日志监控平台就能够看到对应的平常,而且一旦发生异常会发送邮件到你的邮箱,一样能够看到异常的错误描述信息,更多详细使用教程你请参照官网文档

相关文章
相关标签/搜索