文档章节

nginx log记录请求响应时间

swingcoder
 swingcoder
发布于 09/22 12:03
字数 418
阅读 25
收藏 0

有时为了方便分析接口性能等,需要记录请求的时长,通过修改nginx的日志格式可以做到,如

添加一个新的log_format

log_format  timed_combined  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for" '

                        '$request_time $upstream_response_time';

 然后引用这个新的日志格式

access_log  /var/log/nginx/access.log  timed_combined;

几个时间变量的解释

  • $request_time – Full request time, starting when NGINX reads the first byte from the client and ending when NGINX sends the last byte of the response body
  • $upstream_connect_time – Time spent establishing a connection with an upstream server
  • $upstream_header_time – Time between establishing a connection to an upstream server and receiving the first byte of the response header
  • $upstream_response_time – – Time between establishing a connection to an upstream server and receiving the last byte of the response body

如果使用是阿里云,就可以使用他们的日志服务,方便的查询到各执行时间了,如下图:

后记:

2019.9.25 注意,并发请求时,时间有可能会累计,导致对单个请求的时长统计并不准确。

2019.9.26 这个时间跟请求的客户端网速有关系,不是纯的内部处理时长。如果请求客户端网速越慢,时长越大。而且如果你没有使用upstream配置,返回的也是整个请求的处理时长(亦跟客户端网速有关)。

Nginx还支持自定义时间参数的下钻功能,只要在http头上添加相关头字段,并在log_format配置上就可以提取得到了。

参考

https://lincolnloop.com/blog/tracking-application-response-time-nginx/

https://www.nginx.com/blog/using-nginx-logging-for-application-performance-monitoring/

© 著作权归作者所有

共有 人打赏支持
swingcoder
粉丝 32
博文 302
码字总数 69097
作品 0
广州
技术主管
nginx记录分析网站响应慢的请求(ngx_http_log_request_speed)

nginx模块ngxhttplogrequestspeed可以用来找出网站哪些请求很慢,针对站点很多,文件以及请求很多想找出哪些请 求比较慢的话,这个插件非常有效.作者的初衷是写给自己用的,用来找出站点中处...

小运
2013/10/08
0
0
通过Nginx,Tomcat访问日志(access log)记录请求耗时

nginx.conf使用配置方式: logformat main '$remoteaddr - $remoteuser [$timelocal] "$request" ' '$status $bodybytessent "$httpreferer" ' '"$httpuseragent" "$httpxforwardedfor"' '$c......

吕兵阳
2016/03/20
471
0
nginx的log、upstream和server

nginx的log、upstream和server 一、log 首先一个log格式化的例子。 #配置格式main的loglogformat main '$host $status [$timelocal] $remoteaddr [$timelocal] $request_uri ' '"$httprefere......

GITTODO
2016/02/22
659
0
使用log_format为Nginx服务器设置更详细的日志格式

nginx服务器日志相关指令主要有两条,一条是logformat,用来设置日志格式,另外一条是accesslog,用来指定日志文件的存放路径、格式和缓存大小,一般在nginx的配置文件中日记配置(/usr/local...

说回答
06/09
0
0
Nginx服务器log_format设置更详细的日志格式

nginx服务器日志相关指令主要有两条,一条是logformat,用来设置日志格式,另外一条是accesslog,用来指定日志文件的存放路径、格式和缓存大小,一般在nginx的配置文件中日记配置(/usr/local...

SA_小科
05/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
6
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
14
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0
Redis性能问题排查解决手册

一、性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。 nfo命令输出的数据可...

IT--小哥
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部