Exemple #1
0
 def test_bad_description(self):
     with self.assertRaises(errors.MetricDefinitionError):
         metrics.Metric('test', 123, None)
     with self.assertRaises(errors.MetricDefinitionError):
         metrics.Metric('test', '', None)
     with self.assertRaises(errors.MetricDefinitionError):
         metrics.Metric('test', None, None)
Exemple #2
0
 def test_bad_field_spec(self):
     with self.assertRaises(errors.MetricDefinitionError):
         metrics.Metric('test', 'desc', ['abc'])
     with self.assertRaises(errors.MetricDefinitionError):
         metrics.Metric('test', 'desc', ('abc', ))
     with self.assertRaises(errors.MetricDefinitionError):
         metrics.Metric('test', 'desc', [123])
     with self.assertRaises(errors.MetricDefinitionError):
         metrics.Metric('test', 'desc', [None])
Exemple #3
0
 def test_bad_target_type(self):
     with self.assertRaises(errors.MetricDefinitionError):
         field_spec = [metrics.StringField('string')]
         metrics.Metric('/foo',
                        'foo',
                        field_spec,
                        units='us',
                        target_type=my_target_pb2.MyTarget())
     with self.assertRaises(errors.MetricDefinitionError):
         field_spec = [metrics.StringField('string')]
         metrics.Metric('/foo',
                        'foo',
                        field_spec,
                        units='us',
                        target_type=metrics.StringField)
Exemple #4
0
 def test_equality(self):
     field_spec = [metrics.StringField('string')]
     m = metrics.Metric('/foo',
                        'foo',
                        field_spec,
                        units='us',
                        target_type=my_target_pb2.MyTarget)
     self.assertEqual(m, m)
Exemple #5
0
 def test_invalid_field_value(self):
     pb = metrics_pb2.MetricsData()
     m = metrics.Metric('test', fields={'pi': 3.14})
     with self.assertRaises(errors.MonitoringInvalidFieldTypeError) as e:
         m._populate_fields(pb, m._normalized_fields)
     self.assertEquals(e.exception.metric, 'test')
     self.assertEquals(e.exception.field, 'pi')
     self.assertEquals(e.exception.value, 3.14)
Exemple #6
0
    def test_populate_field_values(self):
        pb1 = metrics_pb2.MetricsData()
        m1 = metrics.Metric('foo', fields={'asdf': 1})
        m1._populate_fields(pb1, m1._normalized_fields)
        self.assertEquals(pb1.fields[0].name, 'asdf')
        self.assertEquals(pb1.fields[0].int_value, 1)

        pb2 = metrics_pb2.MetricsData()
        m2 = metrics.Metric('bar', fields={'qwer': True})
        m2._populate_fields(pb2, m2._normalized_fields)
        self.assertEquals(pb2.fields[0].name, 'qwer')
        self.assertEquals(pb2.fields[0].bool_value, True)

        pb3 = metrics_pb2.MetricsData()
        m3 = metrics.Metric('baz', fields={'zxcv': 'baz'})
        m3._populate_fields(pb3, m3._normalized_fields)
        self.assertEquals(pb3.fields[0].name, 'zxcv')
        self.assertEquals(pb3.fields[0].string_value, 'baz')
Exemple #7
0
 def test_properties(self):
     field_spec = [metrics.StringField('string')]
     m = metrics.Metric('/foo',
                        'foo',
                        field_spec,
                        units='us',
                        target_type=my_target_pb2.MyTarget)
     self.assertEqual(m.name, 'foo')
     self.assertEqual(m.field_spec, field_spec)
     self.assertEqual(m.units, 'us')
     self.assertEqual(m.target_type, my_target_pb2.MyTarget)
Exemple #8
0
    def setUp(self):
        super(MetricStoreTestBase, self).setUp()

        self.mock_time = mock.create_autospec(time.time, spec_set=True)
        self.mock_time.return_value = 1234

        self.state = stubs.MockState(store_ctor=self.create_store)
        mock.patch('infra_libs.ts_mon.common.interface.state',
                   new=self.state).start()

        self.store = self.state.store

        self.metric = metrics.Metric('foo')
    def setUp(self):
        super(MetricStoreTestBase, self).setUp()

        self.mock_time = mock.create_autospec(time.time, spec_set=True)
        self.mock_time.return_value = 1234

        target = targets.TaskTarget('test_service', 'test_job', 'test_region',
                                    'test_host')
        self.state = interface.State(store_ctor=self.create_store,
                                     target=target)
        mock.patch('infra_libs.ts_mon.common.interface.state',
                   new=self.state).start()

        self.store = self.state.store

        self.metric = metrics.Metric('foo', 'desc', None)
Exemple #10
0
    def test_populate_fields(self):
        data = metrics_pb2.MetricsData()
        m = metrics.Metric('test', 'test', [
            metrics.IntegerField('a'),
            metrics.BooleanField('b'),
            metrics.StringField('c'),
        ])
        m._populate_fields(data, (1, True, 'test'))

        self.assertEqual(3, len(data.field))

        self.assertEqual('a', data.field[0].name)
        self.assertEqual(1, data.field[0].int64_value)

        self.assertEqual('b', data.field[1].name)
        self.assertTrue(data.field[1].bool_value)

        self.assertEqual('c', data.field[2].name)
        self.assertEqual('test', data.field[2].string_value)
Exemple #11
0
    def test_populate_field_descriptors(self):
        data_set_pb = metrics_pb2.MetricsDataSet()
        m = metrics.Metric('test', 'test', [
            metrics.IntegerField('a'),
            metrics.BooleanField('b'),
            metrics.StringField('c'),
        ])
        m._populate_field_descriptors(data_set_pb)

        field_type = metrics_pb2.MetricsDataSet.MetricFieldDescriptor
        self.assertEqual(3, len(data_set_pb.field_descriptor))

        self.assertEqual('a', data_set_pb.field_descriptor[0].name)
        self.assertEqual(field_type.INT64,
                         data_set_pb.field_descriptor[0].field_type)

        self.assertEqual('b', data_set_pb.field_descriptor[1].name)
        self.assertEqual(field_type.BOOL,
                         data_set_pb.field_descriptor[1].field_type)

        self.assertEqual('c', data_set_pb.field_descriptor[2].name)
        self.assertEqual(field_type.STRING,
                         data_set_pb.field_descriptor[2].field_type)
Exemple #12
0
 def test_init_too_may_fields(self):
     fields = {str(i): str(i) for i in xrange(8)}
     with self.assertRaises(errors.MonitoringTooManyFieldsError) as e:
         metrics.Metric('test', fields=fields)
     self.assertEquals(e.exception.metric, 'test')
     self.assertEquals(len(e.exception.fields), 8)
Exemple #13
0
 def test_name_property(self):
     m1 = metrics.Metric('/foo', fields={'asdf': 1})
     self.assertEquals(m1.name, 'foo')
Exemple #14
0
 def test_init_too_many_fields(self):
     fields = [metrics.StringField('field%d' % i) for i in xrange(13)]
     with self.assertRaises(errors.MonitoringTooManyFieldsError) as e:
         metrics.Metric('test', 'test', fields)
     self.assertEqual(e.exception.metric, 'test')
     self.assertEqual(len(e.exception.fields), 13)
 def test_equality(self):
     field_spec = [metrics.StringField('string')]
     m = metrics.Metric('/foo', 'foo', field_spec, 'us')
     self.assertEquals(m, m)
Exemple #16
0
 def test_register_unregister(self):
     self.assertEqual(0, len(self.mock_state.metrics))
     m = metrics.Metric('test', 'test', None)
     self.assertEqual(1, len(self.mock_state.metrics))
     m.unregister()
     self.assertEqual(0, len(self.mock_state.metrics))
Exemple #17
0
 def test_register_unregister(self):
     self.assertEquals(0, len(self.mock_state.metrics))
     m = metrics.Metric('test', fields={'pi': 3.14})
     self.assertEquals(1, len(self.mock_state.metrics))
     m.unregister()
     self.assertEquals(0, len(self.mock_state.metrics))
 def test_properties(self):
     field_spec = [metrics.StringField('string')]
     m1 = metrics.Metric('/foo', 'foo', field_spec, 'us')
     self.assertEquals(m1.name, 'foo')
     self.assertEquals(m1.field_spec, field_spec)
     self.assertEquals(m1.units, 'us')