为 Django 提供可配置面板,在浏览器中展示每次请求与响应的调试信息。
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#profiling#performance#sql#debugging#middleware#debug-toolbar#developer-tools#django-middleware#monitoring
常见问题
- 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 数据每日更新。
相关项目
8379+1 本周1122PythonBSD-3-Clause更新于 4天前
持续性能剖析平台,采集运行中应用的 CPU、内存和 I/O 剖析数据,可定位到具体代码行。
1.2万834GoAGPL-3.0维护活跃更新于 17小时前
面向 Python 的内存分析器,可追踪 Python 代码、原生扩展及解释器自身的内存分配,并生成多种报告。
1.5万+12 本周486PythonApache-2.0维护活跃更新于 3天前
用于可视化和分析 profile.proto 格式性能剖析数据的命令行与 Web 工具。
9323686GoApache-2.0维护活跃更新于 前天
一款低开销的 Python 追踪工具,将代码执行过程记录并以交互式时间线可视化。
7775+6 本周480PythonApache-2.0更新于 上个月
逐行分析 Python 函数耗时的性能剖析工具,可定位函数中每一行代码的执行时间。
3252+2 本周143PythonOther维护活跃更新于 20天前