Track HTTP Application Response time in Nginx
Jump to navigation
Jump to search
↑ https://lincolnloop.com/blog/tracking-application-response-time-nginx/
↑ https://stackoverflow.com/a/39260524
1) Add to /etc/nginx/nginx.conf befor your access_log directive http://nginx.org/en/docs/http/ngx_http_log_module.html
log_format timed_combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'$pipe $upstream_response_time $request_time';
2) Modify access_log directive to use new format:
access_log /var/log/nginx/yourdomain.com.access.log timed_combined;
request_timeThis shows how long Nginx dealt with the requestupstream_response_timeGives us the time it took our upstream server (in this case Apache/mod_wsgi) to respondpipeShows ‘p’ in case the request was pipelined.
3) Reload nginx:
nginx -t && systemctl restart nginx
4) Check your new log format, last field contains ($request_time):
tail -f /var/log/nginx/access.log
Related[edit]
- Print http response times and date:
cat /var/log/nginx/access.log | awk '{print $4, $(NF-1)}'
Print only if http response time exceed a threshold:
cat /var/log/nginx/access.log | awk '$(NF-1) > "0.300" {print $4, $(NF-1)}
Web site response time:
curl -so /dev/null -w '%{time_total}\n' https://google.com
See also[edit]
Advertising: