我正在将Django用于大型应用程序。监视数据库(Postgres
)时,有时会看到写入了一些慢速查询日志。
问题是如何跟踪生成这些查询的代码。最佳情况下,我希望对这些日志进行一些堆栈跟踪,但是想知道是否还有其他最佳实践或其他工具。
它在生产中,因此DEBUG
设置为False,因此Django本身不会跟踪查询的速度。
PS-我在某处看到有人建议向SQL查询本身添加SQL注释。不幸的是,这似乎在Django中并不普遍可用,而且还需要我更新生成查询的每个代码。
有很多工具可以检查监视在Django应用程序中执行的SQL查询。
Django Debug Toolbar是一组可配置的面板,显示有关当前请求/响应的各种调试信息,单击该工具时,将显示有关面板内容的更多详细信息。
Django Silk是Django框架的实时分析和检查工具。Silk会先拦截并存储HTTP请求和数据库查询,然后再将它们显示在用户界面中以进行进一步检查
借助Elastic APM,可以监视,检测和诊断复杂的应用程序性能问题,以维持预期的服务水平。