Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.40 KB | None | 0 0
  1. import operator
  2. import psutil
  3.  
  4. ## output format: cpu_usage{process="cadvisor", pid="123"} 15.0
  5. def process_list():
  6.     procs = []
  7.     procs_lists=[]
  8.     procs_lists2=[]
  9.     procs_status = {}
  10.     cnt=False
  11.     while True:
  12.         for p in psutil.process_iter():
  13.             try:
  14.                 p.dict = p.as_dict(['username', 'nice', 'memory_info',
  15.                                     'memory_percent', 'cpu_percent',
  16.                                     'cpu_times', 'name', 'status','pid'])
  17.                 try:
  18.                     procs_status[p.dict['status']] += 1
  19.                 except KeyError:
  20.                     procs_status[p.dict['status']] = 1
  21.             except psutil.NoSuchProcess:
  22.                 pass
  23.             else:
  24.                 procs.append(p)
  25.         for a in procs:
  26.             if a.dict['cpu_percent'] is not None and a.dict['cpu_percent'] != 0.0:
  27.                 cnt=True
  28.                 procs_lists.append({'process_name':a.dict['name'],'pid':a.dict['pid'],'cpu':float(a.dict['cpu_percent'])})
  29.         if cnt is True:
  30.             temp = {}
  31.             for d in procs_lists:
  32.                 if d['process_name'] not in temp:
  33.                     temp[d['process_name']] = {}
  34.                 temp_d = temp[d['process_name']]
  35.                 temp_d['cpu'] = temp_d.get('cpu', 0) + float(d['cpu'])
  36.  
  37.             for a,key in temp.items():
  38.                 procs_lists2.append({'process_name':a,'cpu_load':key['cpu']})
  39.             procs_lists2.sort(key=operator.itemgetter('cpu_load'),reverse=True)
  40.             for c in procs_lists2:
  41.                 print('cpu_usage{process_name="%s"} %1.1f'%(c['process_name'],c['cpu_load']))
  42.             break
  43.     return 0
  44.  
  45. if __name__ == '__main__':
  46.     process_list()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement