Django 框架自定义中间件实现请求异常报警

序言

在运维自动化项目运营维护过程中经常会出现很尴尬的局面,很多 bug 或者内部错误我们都不是第一时间获知的,都是用户反馈后驱动我们去解决的,没有异常通知机制会导致工作很被动,那我们在项目过程中开发类似埋点的功能呢?主动发现问题、解决 bug、错误类型统计等来帮我们的工作提效。

在常规的开发中会对重要的逻辑加日志输出、日志报警,但用户请求链路中你不知哪个逻辑出现异常,所有逻辑事务中都添加异常报警那代码将变得冗长维护难度大。

这个时候利用框架中的中间件进行事件拦截是最适合此需求场景的。

设计理念

插拔式设计

  1. 代码入侵度小
  2. 异常自动记录,自动发送报警信息
  3. 报警媒介可后台动态配置

支持环境:

  1. Django 2+
  2. Python 3+


支持场景:

django 站点 request 请求场景(非请求场景不拦截)

已进行异常处理的代码块不进行拦截

配置、适配:

1、settings 引用 middleware

MIDDLEWARE=[
'.......',
'TalTraceback.middleware.ExceptionMiddlewareNotify.ExceptionNotify'
]
INSTALLED_APPS=[
'.......',
'TalTraceback'
]

2、生成 Models 数据模型

python3manage.pymakemigrationsTalTraceback
python3manage.pymigrateTalTraceback

3、配置通知媒介

open {您站点的域名}/admin/TalTraceback/keyparameter/

效果展示

钉钉或知音楼 群消息报警

异常追踪记录检索

代码实现过程 请移步

xxxx

null


null


null



文章为作者独立观点,不代表BOSS直聘立场。未经账号授权,禁止随意转载。