Django 框架自定义中间件实现请求异常报警
序言
在运维自动化项目运营维护过程中经常会出现很尴尬的局面,很多 bug 或者内部错误我们都不是第一时间获知的,都是用户反馈后驱动我们去解决的,没有异常通知机制会导致工作很被动,那我们在项目过程中开发类似埋点的功能呢?主动发现问题、解决 bug、错误类型统计等来帮我们的工作提效。
在常规的开发中会对重要的逻辑加日志输出、日志报警,但用户请求链路中你不知哪个逻辑出现异常,所有逻辑事务中都添加异常报警那代码将变得冗长维护难度大。
这个时候利用框架中的中间件进行事件拦截是最适合此需求场景的。
设计理念
插拔式设计
- 代码入侵度小
- 异常自动记录,自动发送报警信息
- 报警媒介可后台动态配置
支持环境:
- Django 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



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