国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python腳本監(jiān)控docker容器

2019-11-25 16:49:25
字體:
供稿:網(wǎng)友

本文實(shí)例為大家分享了python腳本監(jiān)控docker容器的方法,供大家參考,具體內(nèi)容如下

腳本功能:

1、監(jiān)控CPU使用率

2、監(jiān)控內(nèi)存使用狀況

3、監(jiān)控網(wǎng)絡(luò)流量

具體代碼:

#!/usr/bin/env python# --*-- coding:UTF-8 --*--import sysimport tabimport reimport osimport timefrom docker import Clientimport commandskeys_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 = Nonedef 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 returnvalif __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 "你輸入的容器名稱錯誤,請重新執(zhí)行腳本,并輸入上述正確的容器名稱."    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 '你輸入的容器監(jiān)控項(xiàng)不在監(jiān)控范圍,請重新執(zhí)行腳本,并輸入上述正確的監(jiān)控項(xiàng).'      sys.exit(1)    else:      monitor_item = sys.argv[2]      if sys.argv[3] not in merit_list:        print merit_list        print "你輸入的容器監(jiān)控明細(xì)詳細(xì)不在監(jiān)控范圍內(nèi),請重新執(zhí)行腳本,并輸入上述正確的明細(xì)監(jiān)控指標(biāo)."      else:        merit = sys.argv[3]        monitor_docker(monitor_item,merit)

 

以上就是python腳本監(jiān)控docker容器的全部代碼,希望對大家的學(xué)習(xí)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 郎溪县| 紫云| 金乡县| 区。| 沙田区| 年辖:市辖区| 廊坊市| 鄂温| 拉萨市| 莲花县| 华池县| 伊吾县| 西昌市| 海门市| 屯昌县| 中牟县| 新闻| 崇义县| 洱源县| 东阿县| 德安县| 江华| 安远县| 青河县| 陆河县| 涞源县| 张掖市| 天祝| 旌德县| 奉新县| 金门县| 杭州市| 江北区| 雷州市| 巴林左旗| 东兴市| 三原县| 武冈市| 阳高县| 日喀则市| 鄯善县|