def populate_metrics(self, monitor_list): metric_object = objects.MonitorMetric() metric_object.name = 'cpu.frequency' metric_object.value = 100 metric_object.timestamp = self.NOW_TS metric_object.source = self.source monitor_list.objects.append(metric_object)
def test_monitor_metric_list_to_list(self): obj = objects.MonitorMetric(name='cpu.frequency', value=1000, timestamp=_ts_now, source='nova.virt.libvirt.driver') list_obj = objects.MonitorMetricList(objects=[obj]) self.assertEqual(_monitor_metric_list_spec, list_obj.to_list())
def test_monitor_metric_perc_to_dict(self): """Test to ensure division by 100.0 occurs on percentage value.""" obj = objects.MonitorMetric(name='cpu.percent', value=17, timestamp=_ts_now, source='nova.virt.libvirt.driver') self.assertEqual(_monitor_metric_perc_spec, obj.to_dict())
def test_metrics_filter_pass(self): _ts_now = datetime.datetime(2015, 11, 11, 11, 0, 0) obj1 = objects.MonitorMetric(name='cpu.frequency', value=1000, timestamp=_ts_now, source='nova.virt.libvirt.driver') obj2 = objects.MonitorMetric(name='numa.membw.current', numa_membw_values={"0": 10, "1": 43}, timestamp=_ts_now, source='nova.virt.libvirt.driver') metrics_list = objects.MonitorMetricList(objects=[obj1, obj2]) self.flags(weight_setting=[ 'cpu.frequency=1', 'numa.membw.current=2'], group='metrics') filt_cls = metrics_filter.MetricsFilter() host = fakes.FakeHostState('host1', 'node1', attribute_dict={'metrics': metrics_list}) self.assertTrue(filt_cls.host_passes(host, None))
def populate_metrics(self, metric_list): self._update_data() for name in self.get_metric_names(): metric_object = objects.MonitorMetric() metric_object.name = name metric_object.value = self._data[name] metric_object.timestamp = self._data["timestamp"] metric_object.source = self.source metric_list.objects.append(metric_object)
def test_monitor_NUMA_metric_to_dict(self): obj = objects.MonitorMetric(name='numa.membw.current', numa_membw_values={ "0": 10, "1": 43 }, timestamp=_ts_now, source='nova.virt.libvirt.driver') self.assertEqual(_monitor_numa_metric_spec, obj.to_dict())
def test_obj_make_compatible(self): monitormetric_obj = objects.MonitorMetric( name=fields.MonitorMetricType.NUMA_MEM_BW_CURRENT, numa_membw_values={"0": 10, "1": 43}, timestamp=_ts_now.isoformat(), source='nova.virt.libvirt.driver') primitive = monitormetric_obj.obj_to_primitive() self.assertIn('numa_membw_values', primitive['nova_object.data']) monitormetric_obj.obj_make_compatible(primitive['nova_object.data'], '1.0') self.assertNotIn('numa_membw_values', primitive['nova_object.data'])
def test_metrics_filter_missing_metrics(self): _ts_now = datetime.datetime(2015, 11, 11, 11, 0, 0) obj1 = objects.MonitorMetric(name='cpu.frequency', value=1000, timestamp=_ts_now, source='nova.virt.libvirt.driver') metrics_list = objects.MonitorMetricList(objects=[obj1]) self.flags(weight_setting=['foo=1', 'bar=2'], group='metrics') filt_cls = metrics_filter.MetricsFilter() host = fakes.FakeHostState('host1', 'node1', attribute_dict={'metrics': metrics_list}) self.assertFalse(filt_cls.host_passes(host, None))
def add_metrics_to_list(self, metrics_list): """Adds metric objects to a supplied list object. :param metric_list: nova.objects.MonitorMetricList that the monitor plugin should append nova.objects.MonitorMetric objects to. """ metric_data = self.get_metrics() metrics = [] for (name, value, timestamp) in metric_data: metric = objects.MonitorMetric(name=name, value=value, timestamp=timestamp, source=self.source) metrics.append(metric) metrics_list.objects.extend(metrics)