nginx筛选字段+excel统计

nginx筛选字段+excel统计

  今天临下班的时候,领导叫我统计下即将举行的xx活动中,所有接口url在整天测试过程中,平均访问时间分别是多少,然后降序排序列出来,好让分析性能瓶颈。

  第一次遇到这样的需求,以为要搞很久,领导也比较体贴,知道我没弄过之后,竟然帮我问开发是否了解,linux是否有现成的统计函数,我都猜只能从nginx日志去分析的了~~~果不其然。

  幸好领导帮我化繁为简:叫我先筛选nginx中两列数据:url ,upstream_response_time,然后再导出来放到excel ,作进一步统计分析。

一、nginx筛选字段

1、先查看nginx中对日志格式定义

   log_format json '{"@timestamp":"$time_iso8601",'
  '"host":"$server_addr",'
  '"clientip":"$remote_addr",'
  '"size":$body_bytes_sent,'
  '"responsetime":$request_time,'
  '"upstreamtime":$upstream_response_time,'
  '"upstreamhost":"$upstream_addr",'
  '"http_host":"$host",'
  '"url":"$uri",'
  '"xff":"$http_x_forwarded_for",'
  '"referer":"$http_referer",'
  '"agent":"$http_user_agent",'
  '"status":"$status"}';  

2、顺带观察日志输出 ——》非必须

摘录一条具体日志,如下(为了保密,一些字段信息我改了下)

{"@timestamp":"2021-05-31T09:10:02+08:00","host":"123.14.16.8","clientip":"119.129.123.213","size":8097,"responsetime":0.007,"upstreamtime":0.007,"upstreamhost":"172.12.11.14:8291","http_host":"act.ljysai.cn","url":"/gyp/gyp/images/logo_defaultHead.png","xff":"-","referer":"https://act.ljysai.cn/gyp/gyp/manage/index.html","agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36","status":"200"}

3、最终核心处理命令:

 cat  活动.access.log | awk -F '"' '{print $30"	"$19}' | tr -d ':'  | tr -d ',' > /tmp/活动_20210531.log

为啥要用 tr 命令呢,因为响应时间筛选完之后,实际上长这种样子

然后我导出完之后,就不知道怎么进行excel处理了,还是我们的领导厉害呀,简直是excel小能力,请收下我的膝盖。。。。

二、excel统计

1、原始数据长这样:

2、最终成品

具体过程,我都是凭记忆敲的,可能有误导成分。。。为了不影响我领导伟大的杰作,俺自己复制一个玩

(1)选中“数据透视表”

重头戏来嘞。。。登登登~~~~!!!

(2)两列数据全部选中,“确定”。然后第一列拖去“行”的空白框上,第二列拖去“值”的空白框

 (3)计算平均值

参考:http://www.360doc.com/content/18/0114/16/30583536_721860402.shtml

鼠标单击,选中“值”,“值字段设置”

 选择求平均值

 

 然后再把这个行的玩意再拉多一次下去,跟值放一起,最终成品如下图:

 (4)降序显示请求时间

 至此,大功告成~~~~

 

原文地址:https://www.cnblogs.com/windysai/p/14833625.html