in ambari-metrics-host-monitoring/src/main/python/core/host_info.py [0:0]
def get_network_info(self):
"""
Return network counters
"""
with self.__last_network_lock:
current_time = time.time()
delta = current_time - self.__last_network_io_time
self.__last_network_io_time = current_time
if delta <= 0:
delta = float("inf")
net_stats = psutil.net_io_counters(True)
new_net_stats = {}
skip_virtual_interfaces = self.get_virtual_network_interfaces() if self.__config.get_virtual_interfaces_skip() == 'True' else []
skip_network_patterns = self.__config.get_network_interfaces_skip_pattern()
skip_network_patterns_list = skip_network_patterns.split(',') if skip_network_patterns and skip_network_patterns != 'None' else []
for interface, values in net_stats.items():
if interface != 'lo' and not interface in skip_virtual_interfaces:
ignore_network = False
for p in skip_network_patterns_list:
if re.match(p, interface):
ignore_network = True
if not ignore_network:
new_net_stats = {'bytes_out': new_net_stats.get('bytes_out', 0) + values.bytes_sent,
'bytes_in': new_net_stats.get('bytes_in', 0) + values.bytes_recv,
'pkts_out': new_net_stats.get('pkts_out', 0) + values.packets_sent,
'pkts_in': new_net_stats.get('pkts_in', 0) + values.packets_recv
}
with self.__last_network_lock:
result = dict((k, (v - self.__last_network_data.get(k, 0)) / delta) for k, v in new_net_stats.items())
result = dict((k, 0 if v < 0 else v) for k, v in result.items())
self.__last_network_data = new_net_stats
return result