首先增加切面,在一条请求链中前后加上日志,记录请求链的执行时间:log.info("RESPONSE URL==>{}, cost==>{}ms",request.getRequestURL(), System.currentTimeMillis() - startTime.get());
查询接口的响应时间:
grep '接口名称' 日志文件 | grep -aoP '(?<=Cost )\d+'
如:grep 'localhost:8080/yt/getList' log | grep -aoP '(?<=Cost )\d+'
-a 显示全部;-o 仅匹配;-P 后面接正则表达式;正则表达式:'(?<=Cost )\d+' 匹配'Cost '后面为数字的串
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
计算平均响应时间:
grep 'localhost:8080/yt/getList' log | grep -aoP '(?<=Cost )\d+' | awk '{a++;b+=$1}END{print a,b,b/a}'
AWK是一种处理文本文件的语言 :http://www.runoob.com/linux/linux-comm-awk.html