我有一个在 docker 容器内运行的 Django 应用程序。但是由于某种原因,我的应用程序变得非常慢。我想对我的应用程序使用分析。
为此,我检查了 Apache 和 nginx 日志。然后想了解更多关于此的图片。如何获取 docker 主机接收请求的确切时间以及 docker 容器接收请求的确切时间。
任何帮助都会很棒!!!
我有一个在 docker 容器内运行的 Django 应用程序。但是由于某种原因,我的应用程序变得非常慢。我想对我的应用程序使用分析。
为此,我检查了 Apache 和 nginx 日志。然后想了解更多关于此的图片。如何获取 docker 主机接收请求的确切时间以及 docker 容器接收请求的确切时间。
任何帮助都会很棒!!!
我过去看到这项工作的方式是在您对请求进行反向代理时,为每个请求添加一个带有当前时间戳的自定义标头,包括毫秒。在您的情况下,这将在您的 nginx 配置上完成。像这样的东西
proxy_set_header X-Request-Start "t=${msec}";
然后在 Apache 端,在它处理请求之前你可以做同样的事情。
对于阿帕奇
RequestHeader set X-Request-Start-2 "%t"
您甚至可以记录响应完成的时间并有 3 个时间点进行比较。
然后在您的日志、django 或指标收集系统中,您可以比较点之间的时间,以了解从 nginx 到 Apache 需要多长时间,这就是请求队列时间。它应该非常快,但如果 Apache 没有正确调整,则请求可能会在等待其他请求得到处理时排队。
您可以使用 new relic 之类的东西,它可以确定请求的所有细节,并以漂亮的图表向您显示结果。他们甚至有一个免费版本,可以满足您的需求,并且支持 docker。