MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / get_monitor_list

Method get_monitor_list

class/process_task.py:542–617  ·  view source on GitHub ↗

@name 获取监控列表 @author hwliang<2021-09-04> @return list

(self, stime=None)

Source from the content-addressed store, hash-verified

540 return 'root'
541
542 def get_monitor_list(self, stime=None):
543 ''&#x27;
544 @name 获取监控列表
545 @author hwliang<2021-09-04>
546 @return list
547 ''&#x27;
548 self.get_pids()
549 process_info_list = []
550 total_cpu_precent = 0.0
551 my_pid = os.getpid()
552 if type(self.new_info) != dict: self.new_info = {}
553 all_cpu_time = self.get_cpu_time()
554 self.new_info['time'] = time.time()
555
556 for pid in self.__pids:
557 try:
558 # if pid < 100: continue
559 if pid == my_pid: continue
560 if not pid in self.__process_object.keys():
561 self.__process_object[pid] = Process(pid)
562 try:
563 if self.__process_object[pid].status() == 'terminated':
564 self.__process_object[pid] = Process(pid).create_time
565 except:
566 self.__process_object[pid] = Process(pid)
567 p = self.__process_object[pid]
568
569 process_info = {}
570 process_info['cpu_percent'] = self.get_cpu_percent(
571 str(pid), sum(p.cpu_times()), all_cpu_time
572 ) #self.get_cpu_percent(pid,int(sum(p.cpu_times())),self.new_info['cpu_time']) # CPU使用率
573 total_cpu_precent += process_info['cpu_percent']
574 process_info['memory'] = p.memory_info().rss # 内存占用
575 if not process_info['memory']: continue
576
577 io_counters = p.io_counters()
578 process_info['disk_read'] = self.get_io_read(
579 pid, io_counters.read_bytes) # 读取磁盘字节数
580 process_info['disk_write'] = self.get_io_write(
581 pid, io_counters.write_bytes) # 写入磁盘字节数
582 process_info['disk_total'] = process_info[
583 'disk_read'] + process_info['disk_write'] # 磁盘总读写
584
585 process_info['up'], process_info['up_package'], process_info[
586 'down'], process_info[
587 'down_package'] = self.get_process_network(str(pid))
588
589 process_info['net_total'] = process_info['up'] + process_info[
590 'down'] # 网络总流量
591 process_info['package_total'] = process_info[
592 'up_package'] + process_info['down_package'] # 网络总包数
593
594 if not process_info['cpu_percent'] and not process_info[
595 'disk_total'] and not process_info['net_total']:
596 continue
597 process_proc_comm = '/proc/{}/comm'.format(pid)
598 process_proc_cmdline = '/proc/{}/cmdline'.format(pid)
599 process_info['pid'] = pid

Callers 1

process_task.pyFile · 0.80

Calls 15

get_pidsMethod · 0.95
get_cpu_timeMethod · 0.95
get_cpu_percentMethod · 0.95
get_io_readMethod · 0.95
get_io_writeMethod · 0.95
get_process_networkMethod · 0.95
read_fileMethod · 0.95
get_process_usernameMethod · 0.95
insert_dbMethod · 0.95
ProcessClass · 0.85
timeMethod · 0.80
keysMethod · 0.45

Tested by

no test coverage detected