Repolode
jazzband

jazzband/django-silk

面向 Django 的实时性能分析与检查工具,记录请求、SQL 查询和代码块,帮助定位慢的环节。

Star
5,005
Fork
381
未关闭 Issue
132
最近提交
4天前

这是什么?

Silk 是一个用于 Django 应用的性能分析工具。它通过中间件拦截每个 HTTP 请求和响应,并包装 SQL 执行过程,记录每个请求触发的数据库查询。数据保存在已配置的数据库中,并通过内置的网页界面(路径为 /silk/)展示,可筛选请求,查看耗时、查询次数、查询耗时、请求头和报文内容。

在更深入的分析上,Silk 可以对每个请求运行 Python 的 cProfile,并在界面中展示结果,还可以生成调用关系图,或下载 .prof 文件交给 snakeviz 等工具分析。通过装饰器和上下文管理器,可以对指定函数或代码块做性能剖析;动态剖析功能还能在无法修改源码的模块上包裹函数。此外,Silk 能生成 curl 命令和 Python 代码,用于重放记录的请求。

访问权限可结合 Django 的认证和权限系统进行限制,密码、令牌等敏感字段会被脱敏。记录可按比例、状态码或路径进行过滤,旧数据也可以自动清理。

核心功能

  • 01通过 Django 中间件记录请求、响应、请求头和报文内容。
  • 02按请求追踪 SQL 查询,包括执行时间和调用栈。
  • 03对每个请求运行 cProfile,可生成调用关系图并下载 .prof 文件。
  • 04用装饰器或上下文管理器分析指定函数或代码块。
  • 05生成 curl 和 Python 代码,用于重放已记录的请求。
  • 06支持登录认证、权限控制,并对敏感字段脱敏。

适用场景

  • 排查 Django 视图中的 N+1 查询等性能问题。
  • 在开发或预发布环境中分析特定函数或业务逻辑代码块。
  • 只记录特定状态码的请求,用于排查线上错误。
  • 将请求导出为 curl 命令或 Python 测试代码,便于复现问题。

收录于专题

标签

常见问题

django-silk 是什么?
面向 Django 的实时性能分析与检查工具,记录请求、SQL 查询和代码块,帮助定位慢的环节。 Silk 是一个用于 Django 应用的性能分析工具。它通过中间件拦截每个 HTTP 请求和响应,并包装 SQL 执行过程,记录每个请求触发的数据库查询。数据保存在已配置的数据库中,并通过内置的网页界面(路径为 /silk/)展示,可筛选请求,查看耗时、查询次数、查询耗时、请求头和报文内容。
django-silk 可以免费使用吗?用的什么许可证?
django-silk 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
django-silk 还在维护吗?
活跃维护中。django-silk 最近一次提交是在 2026年11月3日。
django-silk 适合用来做什么?
排查 Django 视图中的 N+1 查询等性能问题。 在开发或预发布环境中分析特定函数或业务逻辑代码块。 只记录特定状态码的请求,用于排查线上错误。 将请求导出为 curl 命令或 Python 测试代码,便于复现问题。
在哪里获取 django-silk?
源代码和安装说明在 GitHub 上:https://github.com/jazzband/django-silk

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目