monitor.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:docklet 作者: unias 项目源码 文件源码
def collect_net_stats(self):
        raw_stats = psutil.net_io_counters(pernic=True)
        for key in raw_stats.keys():
            if re.match('[\d]+-[\d]+',key) is not None:
                if key not in self.net_stats.keys():
                    self.net_stats[key] = {}
                    self.net_stats[key]['bytes_sent'] = 0
                    self.net_stats[key]['bytes_recv'] = 0
                self.net_stats[key]['bytes_recv_per_sec'] = round((int(raw_stats[key].bytes_sent) - self.net_stats[key]['bytes_recv']) / self.interval)
                self.net_stats[key]['bytes_sent_per_sec'] = round((int(raw_stats[key].bytes_recv) - self.net_stats[key]['bytes_sent']) / self.interval)
                self.net_stats[key]['bytes_recv'] = int(raw_stats[key].bytes_sent)
                self.net_stats[key]['bytes_sent'] = int(raw_stats[key].bytes_recv)
                self.net_stats[key]['packets_recv'] = int(raw_stats[key].packets_sent)
                self.net_stats[key]['packets_sent'] = int(raw_stats[key].packets_recv)
                self.net_stats[key]['errin'] = int(raw_stats[key].errout)
                self.net_stats[key]['errout'] = int(raw_stats[key].errin)
                self.net_stats[key]['dropin'] = int(raw_stats[key].dropout)
                self.net_stats[key]['dropout'] = int(raw_stats[key].dropin)
            else:
                if key not in gateways_stats.keys():
                    gateways_stats[key] = {}
                gateways_stats[key]['bytes_recv'] = int(raw_stats[key].bytes_sent)
                gateways_stats[key]['bytes_sent'] = int(raw_stats[key].bytes_recv)
                gateways_stats[key]['bytes_total'] = gateways_stats[key]['bytes_recv'] + gateways_stats[key]['bytes_sent']
        #logger.info(self.net_stats)

    # the main function to collect monitoring data of a container
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号