采集容器内存并写到excel

Posted small-office

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了采集容器内存并写到excel相关的知识,希望对你有一定的参考价值。

 1 # coding=utf-8
 2 import os
 3 import commands
 4 import re
 5 from pyExcelerator import *
 6 
 7 
 8 def execute(cmd):
 9     status, output = commands.getstatusoutput(cmd)
10     if status != 0:
11         raise Exception(status is %s, output is %s % (status, output))
12     return output
13 
14 
15 def get_docker_name():
16     infos = execute("docker ps |awk ‘{print $1, $NF}‘").split(
)
17     regex = re.compile(s+)
18     id_name = {}
19     for info in infos:
20         docker_id, docker_name = regex.split(info)
21         id_name[docker_id] = docker_name
22     return id_name
23 
24 
25 def get_docker_mem():
26     regex = re.compile(s+)
27     ret = execute(docker stats --no-stream).split(
)
28     result_name = os.path.join(os.path.dirname(os.path.abspath(__file__)), docker_res.xlsx)
29     id_name = get_docker_name()
30     w = Workbook()
31     ws = w.add_sheet(node_1_data)
32     ws.write(0, 0, docker_id)
33     ws.write(0, 1, docker_name)
34     ws.write(0, 2, mem(MB))
35     index = 1
36     for docker in ret:
37         info = regex.split(docker)
38         docker_id = info[0]
39         mem = info[2]
40         unit = info[3]
41         if unit.startswith(G):
42             mem = float(mem) * 1024
43         if unit.startswith(K):
44             mem = float(mem) / 1024
45         try:
46             mem = float(mem)
47         except:
48             pass
49         name = id_name[docker_id]
50         ws.write(index, 0, docker_id)
51         ws.write(index, 1, name)
52         ws.write(index, 2, mem)
53         index += 1
54     w.save(result_name)
55 
56 
57 if __name__ == __main__:
58     get_docker_mem()

 

以上是关于采集容器内存并写到excel的主要内容,如果未能解决你的问题,请参考以下文章

通过进程id找到进程对应的容器并统计每个进程的内存占用写到excel里

java解析从接口获取的json内容并写到excle(只写与标题匹配的值,并非把所有的接口返回值都写进去)

Flume的介绍和简单操作

大数据flume日志采集系统详解

数据湖:海量日志采集引擎Flume

数据湖:海量日志采集引擎Flume