应用程序中的服务器错误_在Django Web应用程序中使用Sentry实时监控软件错误入门教程...

6573203dde38d71aef361622cad665d0.png

8148b14baaba46d3a5d9115e914b8f32.png

大家好,欢迎来到此Python/Django系列教程,我的名字是Henry Mbugua,我将使用Sentry带您浏览一下帮助所有软件开发团队实时发现并优先处理错误的监控应用程序的各个方面和新的解决办法。

应用程序错误问题说明

大多数软件开发人员主要依赖于应用程序在开发过程中产生的错误日志。有时,开发人员会使用编写的单元测试来分析所写代码的状态,但是对现代软件开发实践来说,仅依赖日志并不能解决问题,特别是在已经投入生产的应用程序中。

对于移动应用程序,如果用户碰巧在您的应用程序中发现了一个错误,他们就会卸载该应用程序,并在应用程序商店中给您一个坏的评级。太多的应用程序仍然依赖于过时的方法来查找错误,并且仍然必须通过人眼进行分析,这使得修复错误变得非常困难,并且更多的时间被浪费在挖掘日志和依赖用户报告问题上。这里有一个更好的方法。

使用Sentry监控Django应用程序

错误监控工具是现代开发工具箱的重要组成部分。在问题被报告之前解决它是高质量软件开发的下一个迭代。在这节课中,我们将使用Sentry,它是许多可用的自动化工具之一。

如果您已经准备好进行错误监控,请在这里注册一个Sentry帐户。这是一个Sentry注册页面的截图。

05d9ae4527111e8291935ea8e4eb9419.png

Sentry注册

Sentry为您提供了不同的注册选项,您可以使用Github账号、Azure DevOps账号,也可以直接填写表单。如果您已经有了一个账户,您可以在这里登录到Sentry。我已经有一个帐户,这是一个我的Sentry仪表板屏幕截图。

360ee48ce9e293b5466b4e320af8762b.png

Sentry错误列表

在本教程中,我们将在Sentry仪表板上创建一个新项目。在左侧导航栏中,单击Projects链接。您会看到以下截图:

50aef364c76de7f27e9b0654ec8c5e87.png

Sentry创建项目

在右上角,单击“创建项目”。您将得到以下截图:

6fd838586abfe1bcc337c35ab1190052.png

Sentry选择项目类型

Sentry允许您选择您正在处理的项目类型,在本例中,我们正在处理Django应用程序。我已经选择了Django并将我的项目命名为Mpesa API,我所要做的就是点击“创建项目”按钮。在Sentry成功创建了我的项目之后,我被带到下面的页面,在那里我得到了一个快速入门指南。以下是一个截图:

210ec9cc27bf8d3c8f94724cdebfdeee.png

Sentry快速配置指南

太棒了,现在我们已经创建了我们的项目。下一步是将Django应用程序配置为使用Sentry。

配置Django应用程序以使用Sentry

在本教程中,我们假设您已经准备好了一个Django应用程序,在我的例子中,我将使用此Mpesa-Api项目,它是Hlab博客上的系列教程之一。在您喜欢的IDE中打开您的Django项目。

步骤1:

我们将在我们的Python虚拟环境中安装sentry-SDK,或者在您的Django项目运行的环境(您的python环境)中安装sentry-SDK。打开终端,运行以下命令:

83519a982132f144d3e458c2f95265d7.png

下面是我运行上述命令后的终端输出:

fbe4a1480928f9704e9bfc85349e72f6.png

Sentry SDK安装

从终端中,我们可以知道Sentry已经成功安装。下一步是编辑我们的Django settings.py文件,并确保它有以下代码:

c1a3cae322a6becfc7f9c29bf066dd57.png

4fcf156e12ffacb924efd5e8c4442a4f.png

f1f14bcadf321f66554637050cb285ca.png

让我们来理解一下我们刚刚在我们的settings.py底部添加的代码,我们添加了以下内容:

  1. 第124行——我们导入了sentry SDK。

  2. 第125行——我们从sentry SDK导入了DjangoIntegration模块。

  3. 第127行到第130行——我们将integraion初始化到sentry web门户或仪表板。

  4. 第128行——我们定义了一个名为dsn的变量,这是我们传递为我们的项目创建的sentry URL的地方。此URL对于在 sentry上创建的每个项目来说都是唯一的。

  5. 第129行——我们定义了一个名为integrations的变量,并传递了我们从sentry导入的DjangoIntegration模块。

下一步是通过创建一个触发错误的路由来验证我们的sentry安装正在工作:

打开主django urls.py文件,并添加以下代码:

6c1b2b0647baa11af9ca3de700149e7a.png

让我们来看看我们添加的代码:

  1. 第5行到第6行——我们定义了一个名为trigger_error的方法,在这个方法中,我们试图将一个数字除以0。这应该会抛出一个错误,因为数学原理不允许这种情况发生。

  2. 第12行—我们定义了一个调用该方法的URL。

下一步是对此进行测试,通过使用以下命令确保您的开发服务器正在运行:

1d7bd1e9634da5f31f1e5366dcf452bb.png

在您的浏览器上导航到http://127.0.0.1:8000/sentry-debug,您将得到以下错误:

569ec2344e469ca21892699b994dd5c1.png

Python回溯错误

>>> 今日签到口令为:owc0 <<<

当您回到sentry仪表板时,您将在问题部分看到以下内容。

6ef274e472a72c87379917986f25931e.png

Sentry错误详细信息

Sentry将提供一个有关所遇到问题的全面的细节。详细信息如哪个浏览器、操作系统、何时发生错误、为每个错误事件发送一个电子邮件以及哪个URL被调用了。Sentry甚至会将您指向导致该错误的实际行:看看下面的截图:

b4f55b3f30492d28f55797fb91dd7f4b.png

Sentry更多的错误细节

任务

Sentry提供了非常全面的关于如何充分利用此平台的文档。了解更多关于sentry的信息,“最好的情况是,用户和日志提供线索。Sentry提供解决方法”。

在本课中要达到的目标

以下是本课已经达到的目标:

  1. 我们已经学习了为什么我们需要一个自动化错误监控工具的原因。

  2. 我们已经学习了如何在Sentry上注册并创建一个项目

  3. 我们已经学习了如何使用Sentry配置Django项目

结论

在软件开发中,应用程序错误是不可避免的,但是控制由修复软件漏洞而产生的混乱的能力却可以通过适当的错误监控工具(如Sentry)来进行管理。软件错误日志可以用于审计,而sentry可用于实时自动化。

英文原文:https://blog.hlab.tech/a-step-by-step-tutorial-on-how-to-monitor-software-errors-in-real-time-using-sentry-in-django-web-applications/ 
译者:Nothing
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 架构,一般使用 Django 自带的 ORM(Object-Relational Mapping)来操作数据库。ORM 是一种将关系数据库的数据映射到对象的技术,将程序的对象转换为数据库的记录,从而实现对数据库的操作。 不过,如果你想直接使用 MySQL Connector/Python 驱动来连接 MySQL 数据库,可以在 Django 项目的 `__init__.py` 文件进行相关配置。具体配置如下: 1. 安装 MySQL Connector/Python 驱动,可以使用 pip 命令进行安装: ``` pip install mysql-connector-python ``` 2. 在 Django 项目的 `__init__.py` 文件添加以下代码: ```python import mysql.connector from django.db.backends.mysql.base import DatabaseWrapper # 定义 MySQL Connector/Python 驱动的数据库连接参数 cnx = mysql.connector.connect(user='your_username', password='your_password', host='your_host', database='your_database') # 重写 Django 的 MySQL 数据库连接方法 class MySQLDatabaseWrapper(DatabaseWrapper): def get_new_connection(self, conn_params): return cnx # 注册 MySQLDatabaseWrapper DatabaseWrapper.register_backend('mysql.connector', 'django.db.backends.mysql.base', 'MySQLDatabaseWrapper') ``` 需要将上述代码的 `your_username`、`your_password`、`your_host` 和 `your_database` 替换为实际的数据库连接参数。 3. 在 Django 项目的 `settings.py` 文件,将 `DATABASES` 配置的 `ENGINE` 改为 `django.db.backends.mysql.connector`,如下所示: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql.connector', 'NAME': 'your_database', 'USER': 'your_username', 'PASSWORD': 'your_password', 'HOST': 'your_host', 'PORT': 'your_port', } } ``` 需要将上述代码的 `your_username`、`your_password`、`your_host`、`your_database` 和 `your_port` 替换为实际的数据库连接参数。 这样,就可以在 Django 项目使用 MySQL Connector/Python 驱动来连接 MySQL 数据库了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值