亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python腳本監控docker容器

系統 1912 0

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

腳本功能:

1、監控CPU使用率

2、監控內存使用狀況

3、監控網絡流量

具體代碼:

            
#!/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容器的全部代碼,希望對大家的學習有所幫助。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本久久网 | 99精品热女视频专线 | 国产成人亚洲精品 | 亚洲欧美日韩不卡一区二区三区 | 综合精品| 久久精品最新免费国产成人 | 久久国产网站 | 在线观看 日韩 | 亚洲欧美日韩国产精品 | 亚洲夜色综合久久 | 动漫精品一区二区3d | 四虎永久免费网站免费观看 | 在线观看精品一区 | 中国美女一级毛片 | 97精品久久久久中文字幕 | 青草青草久热精品视频在线观看 | 奇米影视777色 | 国产亚洲福利精品一区二区 | 日本精品视频在线观看 | 性视频久久 | 99久久久无码国产精品 | 国产成人亚洲精品2020 | 九热在线 | 91精品国产福利在线观看性色 | 人人97| 中文字幕免费观看视频 | 亚洲国产精品一区二区久 | 成人短视频在线 | 寡妇野外啪啪一区二区 | 欧美日韩亚洲成人 | 亚洲精品国产美女在线观看 | 国产精品国产三级国产a | 国产日 | 日韩精品另类天天更新影院 | 全黄一级裸片视频免费区 | 日本一级毛片私人影院 | 亚洲精品乱码久久久久蜜桃 | 日韩一级视频免费观看 | 国产精品高清免费网站 | 狠狠色噜噜狠狠狠 | 色婷婷免费视频 |