def get_by_name_test(self): self._cleanup() volumes_model.get_or_create(server_id=self.server_id, name='test') result = volumes_model.get_by_name(server=self.server, name='test') eq_(result['name'], 'test') eq_(result['server_id'], self.server['_id']) self._cleanup()
def save_disk_data_test(self): self._cleanup() data_collection = volumes_model.get_data_collection(server_id=self.server_id) device_id = volumes_model.get_or_create(server_id=self.server_id, name='sda1') volume_data = { 'sda1': {"used" : "19060", "percent" : "41", "free" : "27527", "total": 62} } volumes_model.save_data(server=self.server, data=volume_data, time=1) for r in data_collection.find(): eq_(r['device_id'], device_id['_id']) eq_(r['percent'], '41') eq_(r['used'], "19060") eq_(r['t'], 1) golang_data = [{"name":"sda1","path":"/","fstype":"ext2/ext3","total":"36236.00", "free":"3194.00","used":"31282.00","percent":86.33}] data_collection.remove() volumes_model.save_data(server=self.server, data=golang_data, time=1) for r in data_collection.find(): eq_(r['device_id'], device_id['_id']) eq_(r['percent'], 86.33) eq_(r['used'], "31282.00") eq_(r['t'], 1) self._cleanup()
def get_or_create_test(self): self._cleanup() volumes_model.get_or_create(server_id=self.server_id, name='test') total_devices = self.collection.find().count() eq_(total_devices, 1) volume = volumes_model.get_or_create(server_id=self.server_id, name='test') eq_(volume['name'], 'test') eq_(volume['server_id'], self.server_id) total_devices = self.collection.find().count() eq_(total_devices, 1) self._cleanup()
def get_check_for_timestamp_test(self): self._cleanup() volumes_model.get_or_create(server_id=self.server_id, name='sda1') for i in range(0, 10): volume_data = { 'sda1': {"used" : "19060", "percent" : "41", "free" : "27527", "total": 62} } volumes_model.save_data(server=self.server, data=volume_data, time=i) result = volumes_model.get_check_for_timestamp(self.server, 5) eq_(result['sda1']['t'], 5) self._cleanup()
def get_all_for_server_test(self): self._cleanup() volumes_model.get_or_create(server_id=self.server_id, name='test') volumes_model.get_or_create(server_id=self.server_id, name='test1') volumes_model.get_or_create(server_id=self.server_id, name='test2') result = volumes_model.get_all_for_server(server_id=self.server_id) eq_(result.count(), 3) self._cleanup()
def get_server_metrics_test(self): self._cleanup() process_name = "alertest-process" plugin_name = "alertest-plugin" process = process_model.get_or_create(server_id=self.server_id, name=process_name) plugin = plugin_model.get_or_create(name=plugin_name, server_id=self.server_id) plugin_data = { 'count.count_first_key': 2, 'second.second_key': 4, 'more.more_key': 5, 'count.count_second_key': 4 } plugin_model.save_gauges(plugin=plugin, data=plugin_data, time=1) plugin_gauges_keys = plugin_model.get_gauge_keys_for_server(server_id=self.server_id) volumes_model.get_or_create(server_id=self.server_id, name='get_server_metrics_volume') interfaces_model.get_or_create(server_id=self.server_id, name='get_server_metrics_interface') result = self.model.get_server_metrics(server_id=self.server_id) system_metrics = ['CPU', 'Memory', 'Loadavg', 'Disk', 'Network/inbound', 'Network/outbound', 'Not Sending Data'] system_values = ["server:{0}.metric:{1}.rule_type:system".format(self.server_id, x.replace(" ", "")) for x in system_metrics] volumes = volumes_model.get_all_for_server(server_id=self.server_id) for v in volumes: value = "server:{0}.metric:Disk.rule_type:system.volume:{1}".format(self.server_id, v.get('name')) system_values.append(value) interfaces = interfaces_model.get_all_for_server(server_id=self.server_id) for i in interfaces: value = "server:{0}.metric:Network/inbound.rule_type:system.interface:{1}".format(self.server_id, i.get('name')) system_values.append(value) value = "server:{0}.metric:Network/outbound.rule_type:system.interface:{1}".format(self.server_id, i.get('name')) system_values.append(value) process_metrics = ['CPU', 'Memory'] process_alerts_names = ["{0}.{1}".format(process_name, x.replace(" ", "")) for x in process_metrics] process_values = ["server:{0}.process:{1}.metric:{2}.rule_type:process".format(self.server_id, process['_id'], x) for x in process_metrics] process_uptime = ['Down'] process_uptime_alerts_names = ["{0}.{1}".format(process_name, x.replace(" ", "")) for x in process_uptime] process_uptime_values = ["server:{0}.process:{1}.metric:{2}.rule_type:uptime".format(self.server_id, process['_id'], x) for x in process_uptime] plugin_alert_names = ["{0}.{1}".format(plugin_name, x) for x in plugin_data.keys()] plugin_values = [] for plugin_gauge_key in plugin_gauges_keys: gauge = plugin_gauge_key.get('gauge') key = plugin_gauge_key.get('key') _id = "server:{0}.plugin:{1}.gauge:{2}.key:{3}.rule_type:plugin".format( self.server_id, plugin['_id'], gauge['_id'], key ) plugin_values.append(_id) assert len(plugin_values) == 4 # All the keys from plugin_data for r in result: value = r.get('value') metric_dict = dict(v.split(":") for v in value.split(".")) alert_type = metric_dict.get('rule_type') assert alert_type != None assert alert_type in ['system', 'process', 'plugin', 'uptime'] if alert_type == 'system': assert r.get('metric') in system_metrics assert r.get('value') in system_values elif alert_type == 'process': assert r.get('metric') in ['CPU', 'Memory'] assert r.get('name') in process_alerts_names assert r.get('value') in process_values elif alert_type == 'uptime': assert r.get('metric') in ['Down'] assert r.get('name') in process_uptime_alerts_names assert r.get('value') in process_uptime_values elif alert_type == 'plugin': assert r.get('name') in plugin_alert_names assert r.get('value') in plugin_values else: assert False # Should not be here
def get_disk_data_test(self): self._cleanup() volume = volumes_model.get_or_create(server_id=self.server['_id'], name='test_volume') collection = volumes_model.get_data_collection() for i in range(0, 30): collection.insert({ 'server_id': self.server_id, 'device_id': volume['_id'], 't': i, 'total': 12, 'used': 2, 'percent': 60.0 }) result = system_model.get_device_data_after(timestamp=10, enddate=20, server=self.server, check='disk', device_id=volume['_id']) total = result[1]['data'] eq_(len(total), 11) for entry in total: assert entry['x'] >= 10 assert entry['x'] <= 20 assert entry['y'] == 12 assert type(entry['y']) is float used = result[0]['data'] eq_(len(used), 11) for entry in used: assert entry['x'] >= 10 assert entry['x'] <= 20 assert entry['y'] == 2 # Test global data - used in the dashboards all_servers = server_model.get_all() result = system_model.get_global_device_data_after( timestamp=10, enddate=20, filtered_servers=all_servers, check='disk', key='percent') used_percent = result[0]['data'] eq_(len(used_percent), 11) assert result[0]['name'] == "{0}.test_volume".format( self.server['name']) for entry in used_percent: assert entry['x'] >= 10 assert entry['x'] <= 20 assert entry['y'] == 60.0 assert type(entry['y']) is float self._cleanup()