美文网首页
Python脚本获取docker stats数据峰值

Python脚本获取docker stats数据峰值

作者: 卫彬TM | 来源:发表于2019-11-13 16:58 被阅读0次

    在做微服务性能测试时,由于时间过去紧急,来不及使用容器的监测工具来量化容器的CPU、内存,来反馈容器的资源使用情况,便优先使用docker 默认工具docker stats来将需要监控的容器资源使用情况输入到log文件总,考虑使用python脚本来获取里面的峰值,实现xx.py xxx.log 分析.

    docker stats

    image.png

    python脚本如下

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    import codecs,sys
    if len(sys.argv) > 1:
        # 提示以下面的方法运行脚本
       # sys.exit("python getmax.py xxx.log")
       # print(sys.argv)
         logfile = sys.argv[1]
    else:
        print("ERROR!!")
    
    f = codecs.open(logfile, mode='r', encoding='utf-8')  # 打开txt文件,以‘utf-8'编码读取
    line = f.readline()  # 以行的形式进行读取文件
    listcpu = []
    listmem = []
    listmemu = []
    listmeml = []
    listneti = []
    listneto = []
    listblocki = []
    listblocko = []
    while line:
        a = line.split()
        cpu = a[4:5] # 这是选取需要读取的位数
        CPUs =int(str(cpu[0].split('.')[0]))
        if CPUs == 0:  #0 排除
           pass
        else:
           listcpu.append(CPUs)
        mem = a[8:9]  #mem%
        memu = a[5:6]  #Mem usage
        meml = a[7:8]  #Mem limit
        neti = a[9:10]  #Net I
        neto = a[11:12]
        blocki = a[12:13]
        blocko = a[14:15]
        #listcpu.append(CPUs)  # 将其添加在列表之中
        listmem.append(mem[0])
        listmemu.append(memu[0])
        listmeml.append(meml[0])
        listneti.append(neti[0])
        listneto.append(neto[0])
        listblocki.append(blocki[0])
        listblocko.append(blocko[0])
        line = f.readline()
    f.close()
    if len(listcpu) == 0:
       print('CPU_max:','0')
    else:
       print('CPU_max:', max(listcpu))
    print('mem_max:', max(listmemu), 'mem_limit:', max(listmeml),'mem_max_%:', max(listmem))
    print('Net_I:', max(listneti), 'Net_O:', max(listneto))
    print('Block_I:', max(listblocki), 'Block_O:', max(listblocko))
    

    相关文章

      网友评论

          本文标题:Python脚本获取docker stats数据峰值

          本文链接:https://www.haomeiwen.com/subject/wickictx.html