[开源] · · Python · MIT
django-scout
轻量的 Django ORM 慢查询分析器。我们内部用的,开源出来。
[在 GitHub 查看 →]
★ 142
Django ORM 慢查询的最后一道防线。
这是什么
一个 middleware + management command 组合。它做三件事:
- 记录每次请求里所有 SQL 的耗时
- 超过阈值(比如 200ms)的查询触发报警(写到日志或 webhook)
- 管理命令能复盘某个 endpoint 的查询历史
为什么不是 Django Debug Toolbar
Debug Toolbar 太重——开发环境用着还行,生产环境完全不能用。Scout 设计目标就是生产环境可以挂。
用法
INSTALLED_APPS += ['scout']
MIDDLEWARE += ['scout.middleware.SlowQueryMiddleware']
SCOUT = {
'slow_threshold_ms': 200,
'webhook_url': 'https://hooks.example.com/scout',
'sample_rate': 0.1, # 只采样 10% 请求
}
我们用它做什么
- 上线前查 ORM N+1
- 监控慢查询回归
- 给新人 debug 时直接捞现场
不做的事
- 不持久化所有查询(只采样)
- 不替代 APM(它只是一个轻量补充)
- 不做 SQL 改写建议