如何复制耗时超过n秒的请求的nginx日志

如何复制耗时超过n秒的请求的nginx日志,nginx,kong,Nginx,Kong,请考虑访问日志的格式: 日志格式详细信息“$remote\u addr$remote\u user[$time\u local]”“$request” “$status$body\u bytes\u sent”$http\u referer” “$http_user_agent”$http_x_forwarded_for” “$request_length$request_time$上游_connect_time$上游_header_time$上游_response_time”” 如何创建一个只

请考虑访问日志的格式:

日志格式详细信息“$remote\u addr$remote\u user[$time\u local]”“$request” “$status$body\u bytes\u sent”$http\u referer” “$http_user_agent”$http_x_forwarded_for” “$request_length$request_time$上游_connect_time$上游_header_time$上游_response_time””


如何创建一个只包含超过5秒的请求的新日志文件?

您可以将日志发送到http日志并对其进行处理,以确定是否有任何内容超出了预期时间


基于某些条件停止日志看起来实现起来并不复杂。但一旦生成日志,从中提取所需信息似乎是正确的方法。

如果
access\u log
指令中有内置的
语句,则可以这样做:

http{
...
map $upstream_response_time $under {
   ~^[01234]\.[0-9]+ 1; 
   default 0; 
   } 

server {
   set $over 1;
   if ( $under = 1 ) { set $over 0; }
   access_log /some/folder/under.log combined if=$under;
   access_log /some/folder/over.log combined if=$over;
   ...
   }
...
}