免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4596 | 回复: 11
打印 上一主题 下一主题

【求助】 web日志统计脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-26 11:40 |只看该作者 |倒序浏览
有如下web日志文件,名为web.log,包含一天的日志
访问时间      
....
....                                                                                                                                   接口       是否成功
2011-08-23 23:58:58,138                         [2011081921422861(confirmReceiveAction,interface1,Y,OK,166ms)
2011-08-23 23:58:58,278                         [2011081921422861(confirmReceiveAction,interface2,Y,OK,66ms)
2011-08-23 23:58:58,338                         [2011081921422861(confirmReceiveAction,interface3,Y,OK,128ms)
2011-08-23 23:58:58,428                         [2011081921422861(confirmReceiveAction,interface1,Y,OK,236ms)
2011-08-23 23:58:58,518                         [2011081921422861(confirmReceiveAction,interface2,Y,OK,177ms)
2011-08-23 23:58:58,338                         [2011081921422861(confirmReceiveAction,interface3,Y,OK,128ms)
2011-08-23 23:58:59,438                         [2011081921422861(confirmReceiveAction,interface3,Y,OK,322ms)
2011-08-23 23:58:59,568                         [2011081921422861(confirmReceiveAction,interface4,Y,OK,133ms)
2011-08-23 23:58:59,698                         [2011081921422861(confirmReceiveAction,interface1,Y,OK,99ms)
2011-08-23 23:58:59,568                         [2011081921422861(confirmReceiveAction,interface4,Y,OK,163ms)
2011-08-23 23:58:59,698                         [2011081921422861(confirmReceiveAction,interface2,Y,OK,96ms)
......
......

是否访问成功,如果是Y,逗号就是OK,如果是N,逗号后就是原因,比如ERROR.最后是接口处理时间毫秒
接口类型有10来种,:interface1、interface2、interface3、interface4...interface10

希望通过脚本统计出其中interface1、interface2、interface3、interface4这4个接口当访问结果为Y时的如下数据:
1、这4个接口每个接口整天的平均处理时间?
2、这4个接口每个接口每秒钟的处理量(并发请求量)
3、这4个接口每个接口并发请求量每多的那一秒的处理量(高峰处理量)?
4、这4个接口每个接口并发请求量每多的那一秒的平均处理时间(高峰期平均处理时间)?

希望通过脚本统计出其中interface1、interface2、interface3、interface4这4个接口当访问结果为N时的如下数据:
1、这4个接口每个接口整天的平均处理时间?
2、这4个接口每个接口每秒钟的处理量(并发请求量)
3、这4个接口每个接口并发请求量每多的那一秒的处理量(高峰处理量)?
4、这4个接口每个接口并发请求量每多的那一秒的平均处理时间(高峰期平均处理时间)?

论坛徽章:
0
2 [报告]
发表于 2011-08-26 12:23 |只看该作者
回复 1# AmboLong


    好歹你也贴条状态是N的记录啊

论坛徽章:
0
3 [报告]
发表于 2011-08-26 12:33 |只看该作者
回复 2# ywlscpl


不好意思,如下:


....
....                                                             接口            是否成功
2011-08-23 23:58:58,138                         [2011081921422861(confirmReceiveAction,interface1,Y,OK,166ms)
2011-08-23 23:58:58,278                         [2011081921422861(confirmReceiveAction,interface2,Y,OK,66ms)
2011-08-23 23:58:58,338                         [2011081921422861(confirmReceiveAction,interface3,Y,OK,128ms)
2011-08-23 23:58:58,428                         [2011081921422861(confirmReceiveAction,interface1,Y,OK,236ms)
2011-08-23 23:58:58,518                         [2011081921422861(confirmReceiveAction,interface2,Y,OK,177ms)
2011-08-23 23:58:58,638                         [2011081921422861(confirmReceiveAction,interface3,Y,OK,128ms)
2011-08-23 23:58:58,638                         [2011081921422861(confirmReceiveAction,interface5,Y,OK,128ms)
2011-08-23 23:58:58,718                         [2011081921422861(confirmReceiveAction,interface2,N,ERROR1,177ms)
2011-08-23 23:58:59,138                         [2011081921422861(confirmReceiveAction,interface3,Y,OK,322ms)
2011-08-23 23:58:59,268                         [2011081921422861(confirmReceiveAction,interface4,Y,OK,133ms)
2011-08-23 23:58:59,498                         [2011081921422861(confirmReceiveAction,interface1,Y,OK,99ms)
2011-08-23 23:58:59,568                         [2011081921422861(confirmReceiveAction,interface4,Y,OK,163ms)
2011-08-23 23:58:59,698                         [2011081921422861(confirmReceiveAction,interface6,Y,OK,96ms)
2011-08-23 23:58:59,898                         [2011081921422861(confirmReceiveAction,interface6,N,ERROR2,96ms)
......
......

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
4 [报告]
发表于 2011-08-26 12:43 |只看该作者
大锅 服务是要钱的
BETTER_ROOT 发表于 2011-08-26 11:01


今天看到的

论坛徽章:
0
5 [报告]
发表于 2011-08-26 13:31 |只看该作者
求高手帮忙啊

论坛徽章:
0
6 [报告]
发表于 2011-08-26 13:41 |只看该作者
回复 4# waker


孩儿他爹,你是俺老偶像了。麻烦帮帮忙。

论坛徽章:
0
7 [报告]
发表于 2011-08-26 13:43 |只看该作者
路过,看到 ,再自己的机器上尝试编写一下楼主要的脚本,不知道能不能成功

论坛徽章:
0
8 [报告]
发表于 2011-08-26 14:51 |只看该作者
  1. #!/bin/sh

  2. if [ "$#" -lt 1 ] ; then
  3.         echo "Usage ${0} interfacename [y/n]"
  4. fi


  5. log_filename="web.log"

  6. interface_name="interface1,interface2,interface3,interface4,"
  7. is_find=`echo $interface_name | grep "${1}"`

  8. find_flag=$2

  9. tmp=""
  10. tmp_sec=0
  11. tmp_line=""
  12. tmp_time=""

  13. interface_count=0
  14. interface_total_time=0

  15. #echo "is_find value ${is_find}"

  16. if [ -n "${is_find}" ] ; then

  17.         if [ -z "${find_flag}" ]; then
  18.                 find_flag="Y"
  19.         fi
  20.        
  21.         if [ "${find_flag}" = "Y" ] ; then
  22.                 echo "接口 ${1} 成功统计信息"
  23.         else
  24.                 echo "接口 ${1} 失败统计信息"
  25.         fi


  26.         #echo "find ,flag ${find_flag}"
  27.         #i=0
  28.         for logline in `more "${log_filename}" | grep "${1},${find_flag}"`
  29.         do
  30.                 #i=`expr $i + 1`       
  31.                 #echo "${i} ${logline}"
  32.                 tmp=""

  33.                 tmp=`echo ${logline} | grep ${1}`
  34.                 if [ -z "${tmp}" ] ; then
  35.                         continue       
  36.                 fi

  37.                 tmp_time=`echo $tmp| awk -F, '{print $5}' | sed 's/ms)//'`
  38.                
  39.                 #echo $tmp_time
  40.                
  41.                 interface_total_time=`expr ${interface_total_time} + ${tmp_time}`
  42.                 interface_count=`expr ${interface_count} + 1`
  43.         done


  44.         #echo "interface_total_time=${interface_total_time}ms, interface_count=${interface_count}"

  45.         if [ "${interface_count}" != "0" ]; then
  46.                 tmp=`expr "${interface_total_time}" / "${interface_count}"`
  47.                 tmp_sec=`expr 1000 / $tmp`
  48.                 echo "接口 ${1} 总计调用次数 ${interface_count} 次, 总耗时 ${interface_total_time} 平均响应时间 ${tmp}ms, 平均每秒 ${tmp_sec} 次请求"
  49.         else
  50.                 echo "接口 调用0次"
  51.         fi

  52. else
  53.         echo "interface name could not find."
  54.         exit 0;
  55. fi
复制代码
复制代码保持名称为 any_web.sh
增加可执行权限
# chmod +x any_web.sh

调用方式
./any_web.sh interface1 Y

输出
接口 interface1 成功统计信息
接口 interface1 总计调用次数 3 次, 总耗时 501 平均响应时间 167ms, 平均每秒 5 次请求


或者
./any_web.sh interface2 N

输出如下
接口 interface2 失败统计信息
接口 interface2 总计调用次数 1 次, 总耗时 177 平均响应时间 177ms, 平均每秒 5 次请求



只接口了楼主 成功响应 统计需求中 1,2 两个 和失败统计响应中的 1,2 两个需求

3,4 两个需要交为复杂,暂时没有时间弄

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
9 [报告]
发表于 2011-08-26 14:58 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2011-08-26 15:04 |只看该作者
这就得按着逻辑写了`
你自个写`出问题`说出问题帮你解决`
很少有人会帮你写那么多代码的``
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP