zoukankan      html  css  js  c++  java
  • 日志分析技术

    算法:

    创建四个list对应存储不同的响应时间段

    读入日志文件每行内容,依次存入列表

    1.取出日志文件中每一次处理请求的时间,存入相应的list

      1.1 取出时间字符串

                先找到“op takes ”的位置-->idx1

                再找到 idx1 其后面紧跟着的第一个空格的位置-->idx2

             这行日志[idx1:idx2] -->responsetimestr

      1.2判断其值,存入相应list

    2.统计每个时间段list处理时间的个数,并计算百分比

    # coding:utf-8

    # 100ms以下的
    list100 = []
    # 100ms-500ms
    list100_500 = []
    # 500ms-1000ms
    list500_1000 = []
    # 1000ms以上的
    list1000 = []

    filepath = 'server.log'
    fd = open(filepath)
    lines = fd.readlines()
    fd.close()
    keyword = 'mac1:'
    for line in lines:
    #获取响应时间
    idx1 = line.find(keyword)
    idx1 += len(keyword)
    idx2 = line.find('',idx1)
    responsetimestr = line[idx1:idx2]

    rts = float(responsetimestr)
    #存入容器
    if rts < 0.1:
    list100.append(rts)
    elif 0.1 <= rts <0.5:
    list100_500.append(rts)
    elif 0.5 <= rts <1:
    list500_1000.append(rts)
    elif rts >=1:
    list1000.append(rts)
    num100 = len(list100)
    num100_500 = len(list100_500)
    num500_1000 = len(list500_1000)
    num1000 = len(list1000)
    totalnum = float(num100+num100_500+num500_1000+num1000)



    print u'0ms-100ms :%个,百分之 %.2f'% (num100,num100*100/totalnum)
    print u'100ms-500ms :%个,百分之 %.2f'% (num100_500,num100_500*100/totalnum)
    print u'500ms-1000ms :%个,百分之 %.2f'% (num500_1000,num500_1000*100/totalnum)
    print u'>1000ms :%个,百分之 %.2f'% (num1000,num1000*100/totalnum)


    重点:
    设计方法
    人工操作角度思考
    伪代码描述思路
    代码实现伪代码
    注意代码的可读性:合理命令;相应注释
    断点和单步执行的方式解决问题

  • 相关阅读:
    读《大道至简》有感
    软件工程概论第一次课堂作业
    课后小程序
    继承与多态课后作业
    课后作业2-字符串
    课后作业1:字串加密
    3-类与对象-动手动脑
    使用类的静态字段和构造函数,跟踪某个类所创建对象的个数。
    课程作业02-1-课后作业1-(3、4)汉诺塔、回文数
    课程作业02-2-动手动脑
  • 原文地址:https://www.cnblogs.com/seven000/p/7383920.html
Copyright © 2011-2022 走看看