Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import operator
- import psutil
- ## output format: cpu_usage{process="cadvisor", pid="123"} 15.0
- def process_list():
- procs = []
- procs_lists=[]
- procs_lists2=[]
- procs_status = {}
- cnt=False
- while True:
- for p in psutil.process_iter():
- try:
- p.dict = p.as_dict(['username', 'nice', 'memory_info',
- 'memory_percent', 'cpu_percent',
- 'cpu_times', 'name', 'status','pid'])
- try:
- procs_status[p.dict['status']] += 1
- except KeyError:
- procs_status[p.dict['status']] = 1
- except psutil.NoSuchProcess:
- pass
- else:
- procs.append(p)
- for a in procs:
- if a.dict['cpu_percent'] is not None and a.dict['cpu_percent'] != 0.0:
- cnt=True
- procs_lists.append({'process_name':a.dict['name'],'pid':a.dict['pid'],'cpu':float(a.dict['cpu_percent'])})
- if cnt is True:
- temp = {}
- for d in procs_lists:
- if d['process_name'] not in temp:
- temp[d['process_name']] = {}
- temp_d = temp[d['process_name']]
- temp_d['cpu'] = temp_d.get('cpu', 0) + float(d['cpu'])
- for a,key in temp.items():
- procs_lists2.append({'process_name':a,'cpu_load':key['cpu']})
- procs_lists2.sort(key=operator.itemgetter('cpu_load'),reverse=True)
- for c in procs_lists2:
- print('cpu_usage{process_name="%s"} %1.1f'%(c['process_name'],c['cpu_load']))
- break
- return 0
- if __name__ == '__main__':
- process_list()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement