0

我有一个在 docker 容器内运行的 Django 应用程序。但是由于某种原因,我的应用程序变得非常慢。我想对我的应用程序使用分析。

为此,我检查了 Apache 和 nginx 日志。然后想了解更多关于此的图片。如何获取 docker 主机接收请求的确切时间以及 docker 容器接收请求的确切时间。

任何帮助都会很棒!!!

4

1 回答 1

0

我过去看到这项工作的方式是在您对请求进行反向代理时,为每个请求添加一个带有当前时间戳的自定义标头,包括毫秒。在您的情况下,这将在您的 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。

于 2016-05-02T12:07:56.580 回答