- backend = GnocchiBackend('test_uuid', 60)
- value = backend._collect_instance_metric('cpu_utilization', 'test_resource_id')
- self.assertEqual(value, 0.0333070363)
- mock_gnocchi_client.metric.get_measures.assert_called_once_with('cpu_utilization', granularity=60,
- resource_id='test_resource_id', start=mock.ANY)
+ backend = GnocchiBackend({'_id': 'test_uuid'})
+ value = backend._collect_instance_metric('cpu', 'test_resource_id')
+ self.assertEqual(value, 1.0)
+ mock_gnocchi_client.metric.get_measures.assert_called_once_with('cpu',
+ aggregation="rate:mean",
+ start=mock.ANY,
+ resource_id='test_resource_id')
+
+ @mock.patch.object(GnocchiBackend, '_build_neutron_client')
+ @mock.patch.object(GnocchiBackend, '_build_gnocchi_client')
+ def test_collect_gnocchi_non_rate_instance(self, build_gnocchi_client, _):
+ mock_gnocchi_client = mock.Mock()
+ mock_gnocchi_client.metric.get_measures.return_value = [(datetime.datetime(2019, 4, 12, 15, 43,
+ tzinfo=datetime.timezone(
+ datetime.timedelta(0),
+ '+00:00')), 60.0, 0.0345442539),
+ (datetime.datetime(2019, 4, 12, 15, 44,
+ tzinfo=datetime.timezone(
+ datetime.timedelta(0),
+ '+00:00')), 60.0, 128)]
+ build_gnocchi_client.return_value = mock_gnocchi_client
+
+ backend = GnocchiBackend({'_id': 'test_uuid'})
+ value = backend._collect_instance_metric('memory.usage', 'test_resource_id')
+ self.assertEqual(value, 128)
+ mock_gnocchi_client.metric.get_measures.assert_called_once_with('memory.usage',
+ aggregation=None,
+ start=mock.ANY,
+ resource_id='test_resource_id')
+
+ @mock.patch.object(GnocchiBackend, '_build_neutron_client')
+ @mock.patch.object(GnocchiBackend, '_build_gnocchi_client')
+ def test_collect_gnocchi_no_metric(self, build_gnocchi_client, _):
+ mock_gnocchi_client = mock.Mock()
+ mock_gnocchi_client.metric.get_measures.side_effect = gnocchiclient.exceptions.NotFound()
+ build_gnocchi_client.return_value = mock_gnocchi_client
+
+ backend = GnocchiBackend({'_id': 'test_uuid'})
+ value = backend._collect_instance_metric('memory.usage', 'test_resource_id')
+ self.assertIsNone(value)
+ mock_gnocchi_client.metric.get_measures.assert_called_once_with('memory.usage',
+ aggregation=None,
+ start=mock.ANY,
+ resource_id='test_resource_id')