@name 获取监控列表 @author hwliang<2021-09-04> @return list
(self, stime=None)
| 540 | return 'root' |
| 541 | |
| 542 | def get_monitor_list(self, stime=None): |
| 543 | ''' |
| 544 | @name 获取监控列表 |
| 545 | @author hwliang<2021-09-04> |
| 546 | @return list |
| 547 | ''' |
| 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 |
no test coverage detected