国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python腳本監控docker容器

python腳本監控docker容器

2020-08-21 10:23腳本之家 Python

這篇文章主要介紹了python腳本監控docker容器的相關資料,需要的朋友可以參考下

本文實例為大家分享了python腳本監控docker容器的方法,供大家參考,具體內容如下

腳本功能:

1、監控CPU使用率

2、監控內存使用狀況

3、監控網絡流量

具體代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env python
# --*-- coding:UTF-8 --*--
import sys
import tab
import re
import os
import time
from docker import Client
import commands
keys_container_stats_list = ['blkio_stats', 'precpu_stats', 'Network', 'read', 'memory_stats', 'cpu_stats']
merit_list=['usage','limit','mem_use_percent','total_cpu_usage','system_cpu_usage','cpu_usage_percent','rx_bytes','tx_bytes']
returnval = None
def start(container_name):
  global container_stats
  conn=Client(base_url='unix://run/docker.sock',version='1.19')
  generator=conn.stats(container_name)
  try:
    container_stats=eval(generator.next())
  except NameError,error_msg:
    pass
#    print error_msg
    container_stats=eval(generator.next())
  finally:
    conn.close()
def monitor_docker(monitor_item,merit):
  if merit == 'mem_use_percent':
    start(container_name)
    mem_usage = container_stats['memory_stats']['usage']
    mem_limit = container_stats['memory_stats']['limit']
    returnval = round(float(mem_usage) / float(mem_limit),2)
    print returnval
  elif merit == 'system_cpu_usage':
    start(container_name)
    first_result = container_stats['cpu_stats']['system_cpu_usage']
    start(container_name)
    second_result = container_stats['cpu_stats']['system_cpu_usage']
    returnval = second_result - first_result
    print returnval
  elif merit == 'total_cpu_usage':
    start(container_name)
    first_result = container_stats['cpu_stats']['cpu_usage']['total_usage']
    start(container_name)
    second_result = container_stats['cpu_stats']['cpu_usage']['total_usage']
    returnval = second_result - first_result
    print returnval
  elif merit == 'cpu_usage_percent':
    start(container_name)
    system_use=container_stats['cpu_stats']['system_cpu_usage']
    total_use=container_stats['cpu_stats']['cpu_usage']['total_usage']
    cpu_count=len(container_stats['cpu_stats']['cpu_usage']['percpu_usage'])
    returnval = round((float(total_use)/float(system_use))*cpu_count*100.0,2)
    print returnval
  elif merit == 'rx_bytes':
    command='''docker exec -it api1 ifconfig eth1 | grep "bytes" | awk '{print $2}' | awk -F ':' '{print $2}' '''
    result_one = commands.getoutput(command)
    time.sleep(1)
    command='''docker exec -it api1 ifconfig eth1 | grep "bytes" | awk '{print $2}' | awk -F ':' '{print $2}' '''
    result_second = commands.getoutput(command)
    returnval = round((int(result_second) - int(result_one))/1024,2)
    print returnval
  elif merit == 'tx_bytes':
    command='''docker exec -it api1 ifconfig eth1 | grep "bytes" | awk '{print $6}' | awk -F ':' '{print $2}' '''
    result_one = commands.getoutput(command)
    time.sleep(1)
    command='''docker exec -it api1 ifconfig eth1 | grep "bytes" | awk '{print $6}' | awk -F ':' '{print $2}' '''
    result_second = commands.getoutput(command)
    returnval = round((int(result_second) - int(result_one))/1024,2)
    print returnval
if __name__ == '__main__':
  command='''docker ps | awk '{print $NF}'| grep -v "NAMES"'''
  str=commands.getoutput(command)
  container_counts_list=str.split('\n')
  if sys.argv[1] not in container_counts_list:
    print container_counts_list
    print "你輸入的容器名稱錯誤,請重新執行腳本,并輸入上述正確的容器名稱."
    sys.exit(1)
  else:
    container_name = sys.argv[1]
    if sys.argv[2] not in keys_container_stats_list:
      print keys_container_stats_list
      print '你輸入的容器監控項不在監控范圍,請重新執行腳本,并輸入上述正確的監控項.'
      sys.exit(1)
    else:
      monitor_item = sys.argv[2]
      if sys.argv[3] not in merit_list:
        print merit_list
        print "你輸入的容器監控明細詳細不在監控范圍內,請重新執行腳本,并輸入上述正確的明細監控指標."
      else:
        merit = sys.argv[3]
        monitor_docker(monitor_item,merit)

 

以上就是python腳本監控docker容器的全部代碼,希望對大家的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内精品久久久久久 | 久久久国产一区二区三区 | 国产精品久久 | 91精品一区二区 | 午夜天堂精品久久久久 | 国色天香成人网 | 91久久极品 | 婷婷丁香综合 | 日本在线视频一区二区 | 在线视频亚洲 | 一区二区三区国产 | 国产一区二区三区视频 | 久久久久久久久久久高潮 | 亚洲自拍偷拍精品 | 91在线你懂的 | 国产97人人超碰caoprom | 超碰97中文| 久久99精品国产麻豆婷婷洗澡 | 精品免费久久久久 | 亚洲va欧美va天堂v国产综合 | 久久九九国产精品 | 一级黄色小视频 | 欧美激情一区二区三区 | 亚洲精品字幕 | 午夜国产视频 | 人体一区| 精品视频国产 | 99久久免费精品 | 亚洲www视频| 538在线| 一本一本久久a久久精品综合妖精 | 国产不卡精品视频 | 日韩欧美一区二区三区 | 国产91久久久久蜜臀青青天草二 | 久久国产经典视频 | 一本久久综合亚洲鲁鲁五月天 | 草久在线视频 | 一级电影网 | |级毛片| 中文字幕成人在线 | 99热最新网址 |