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
评论列表
文章目录