看一眼http://httpd.apache.org/docs/2.2/mod/mod_log_config.html http://httpd.apache.org/docs/2.2/mod/mod_log_config.html。您可以设置自定义日志,其中包括处理请求所花费的时间。
例如:
LogFormat "%h %l %u %t \"%r\" %>s %b %D" common-time
将添加服务请求所需的时间(以微秒为单位)作为日志文件的最后一个字段。
您可以将该行添加到您的 httpd.conf 中,然后在要使用它的每个虚拟主机中添加以下行:
CustomLog logs/access_log_time common-time
您还可以创建一个新的 LogFormat,其中仅包含您想要的内容,可能如下所示:
LogFormat "\"%r\" %D" measure-time
在您的虚拟主机中,您可以有多个日志,因此您可以:
CustomLog logs/access_log common
CustomLog logs/access_log_time measure-time
综上所述,有一个巨大的警告。这将仅测量服务器提供页面所需的时间。它will not包括在浏览器中执行任何 JavaScript 所需的时间。如果您需要测量 javascript 执行时间,您需要使用类似的工具firebug http://getfirebug.com/.
获得日志后,您可以使用类似的东西阿帕奇日志 https://github.com/nickmoorman/apachelog解析日志文件以仅获取花费时间超过您要使用的阈值的请求。
我不确定是否可以仅记录长请求并绕过解析步骤。可能是这样,但我有一种感觉,这需要大量的工作。