def test_parse_only_alive_interfaces(self): container = SystemManager() container._discover_objects() os_obj = container.objects.objects[container.objects.objects_by_type[ container.type][0]] collector = SystemCommonMetaCollector(object=os_obj) collector.collect() # get interfaces info all_interfaces = netifaces.interfaces() alive_interfaces = set() down_interfaces = set() for interface_name, interface in psutil.net_if_stats().iteritems(): if interface.isup: alive_interfaces.add(interface_name) else: down_interfaces.add(interface_name) # check intefaces collected_interfaces = os_obj.metad.current['network']['interfaces'] for interface_info in collected_interfaces: name = interface_info['name'] assert_that(all_interfaces, has_item(name)) assert_that(alive_interfaces, has_item(name)) assert_that(down_interfaces, not_(has_item(name)))
def test_collect_only_alive_interfaces(self): container = SystemManager() container._discover_objects() os_obj = container.objects.objects[container.objects.objects_by_type[container.type][0]] collector = SystemMetricsCollector(object=os_obj) collector.collect() collector.collect() # double collect is needed, because otherwise we do not collect metrics properly # get interfaces info all_interfaces = netifaces.interfaces() alive_interfaces = set() down_interfaces = set() for interface_name, interface in psutil.net_if_stats().iteritems(): if interface.isup: alive_interfaces.add(interface_name) else: down_interfaces.add(interface_name) # check collected_metrics = os_obj.statsd.current net_metrics_found = False for metric in collected_metrics['counter'].keys(): if metric.startswith('system.net.') and '|' in metric: net_metrics_found = True metric_name, label_name = metric.split('|') assert_that(all_interfaces, has_item(label_name)) assert_that(alive_interfaces, has_item(label_name)) assert_that(down_interfaces, not_(has_item(label_name))) assert_that(net_metrics_found, equal_to(True))
def test_parse_only_alive_interfaces(self): container = SystemManager() container._discover_objects() os_obj = container.objects.find_all(types=container.types)[0] collector = SystemMetaCollector(object=os_obj) collector.collect() # get interfaces info all_interfaces = netifaces.interfaces() alive_interfaces = set() down_interfaces = set() for interface_name, interface in psutil.net_if_stats().iteritems(): if interface.isup: alive_interfaces.add(interface_name) else: down_interfaces.add(interface_name) # check interfaces collected_interfaces = os_obj.metad.current['network']['interfaces'] for interface_info in collected_interfaces: assert_that(interface_info, has_key('name')) assert_that(interface_info, has_key('mac')) assert_that(interface_info, has_key('ipv4')) ipv4 = interface_info['ipv4'] assert_that(ipv4, has_key('netmask')) assert_that(ipv4, has_key('address')) assert_that(ipv4, has_key('prefixlen')) name = interface_info['name'] assert_that(all_interfaces, has_item(name)) assert_that(alive_interfaces, has_item(name)) assert_that(down_interfaces, not_(has_item(name)))
def get_collector(self, collect=True): manager = SystemManager() manager._discover_objects() obj = manager.objects.find_all(types=manager.types)[0] collector = SystemMetaCollector(object=obj) if collect: collector.collect() return collector
def setup_method(self, method): super(SystemMetricsCollectorTestCase, self).setup_method(method) manager = SystemManager() manager._discover_objects() system_obj = manager.objects.objects[manager.objects.objects_by_type[manager.type][0]] collector = SystemMetricsCollector(object=system_obj) collector.collect() collector.collect() # second collect is needed to properly collect all metrics self.metrics = system_obj.statsd.current
def get_collector(self, collect=True): manager = SystemManager() manager._discover_objects() obj = manager.objects.find_all(types=manager.types)[0] collector = SystemMetricsCollector(object=obj) if collect: collector.collect() collector.collect() # second collect is needed to properly collect all metrics return collector
def test_discover(self): system_manager = SystemManager() system_manager._discover_objects() assert_that( system_manager.objects.find_all(types=system_manager.types), has_length(1)) # get the system object system_obj = system_manager.objects.find_all( types=system_manager.types)[0] assert_that(system_obj.type, equal_to('container')) assert_that(system_obj.imagename, equal_to('DockerTest')) assert_that(system_obj.uuid, equal_to('container-DockerTest'))
def test_discover(self): system_manager = SystemManager() system_manager._discover_objects() assert_that( system_manager.objects.find_all(types=system_manager.types), has_length(1)) # get the system object system_obj = system_manager.objects.find_all( types=system_manager.types)[0] assert_that(system_obj.type, equal_to('system')) assert_that(system_obj.uuid, equal_to(DEFAULT_UUID)) assert_that(system_obj.hostname, equal_to(DEFAULT_HOST))
def test_special_parse_restrictions(self): container = SystemManager() container._discover_objects() os_obj = container.objects.find_all(types=container.types)[0] collector = SystemMetaCollector(object=os_obj) assert_that(not_(collector.in_container)) collector.collect() collected_meta = os_obj.metad.current assert_that(collected_meta, has_key('boot')) assert_that(collected_meta, has_key('hostname')) assert_that(collected_meta, has_key('ec2'))
def test_flush_aggregation(self): container = SystemManager() container._discover_objects() os_obj = container.objects.objects[container.objects.objects_by_type[container.type][0]] collector = SystemMetricsCollector(object=os_obj) collector.collect() collector.collect() # double collect is needed, because otherwise we do not collect metrics properly flush = collector.object.statsd.flush() for type in flush['metrics'].keys(): # e.g. 'timer', 'counter', 'gauge', 'average' for key in flush['metrics'][type].keys(): # Make sure there is only one item per item in the flush. assert_that(len(flush['metrics'][type][key]), equal_to(1))
def test_default_interface(self): container = SystemManager() container._discover_objects() os_obj = container.objects.find_all(types=container.types)[0] collector = SystemMetaCollector(object=os_obj) collector.collect() default_from_netstat, _ = subp.call( 'netstat -nr | egrep -i "^0.0.0.0|default" | head -1 | sed "s/.*[ ]\([^ ][^ ]*\)$/\\1/"' )[0] default_interface = os_obj.metad.current['network']['default'] assert_that(default_interface, equal_to(default_from_netstat))
def test_collect_each_interface_once(self): container = SystemManager() container._discover_objects() os_obj = container.objects.find_all(types=container.types)[0] collector = SystemMetaCollector(object=os_obj) num_interfaces = len(psutil.net_if_stats()) for x in xrange(3): collector.collect() collected_interfaces = os_obj.metad.current['network'][ 'interfaces'] assert_that(collected_interfaces, only_contains(contains_inanyorder('mac', 'name'))) assert_that(collected_interfaces, has_length(num_interfaces))
def setup_method(self, method): super(PsutilsTestCase, self).setup_method(method) self.system_manager = SystemManager() self.system_manager._discover_objects() self.nginx_manager = NginxManager() self.nginx_manager._discover_objects() self.system_obj = self.system_manager.objects.objects[ self.system_manager.objects.objects_by_type[ self.system_manager.type][0]] self.system_metrics_collector = self.system_obj.collectors[1] self.nginx_obj = self.nginx_manager.objects.objects[ self.nginx_manager.objects.objects_by_type[ self.nginx_manager.type][0]] self.nginx_metrics_collector = self.nginx_obj.collectors[2]