Ejemplo n.º 1
0
 def test_observe_disabled(self):
     meter = metrics.MeterProvider().get_meter(__name__)
     observer = metrics.Observer(None, "name", "desc", "unit", int, meter,
                                 ("key", ), False)
     labels = {"key": "value"}
     observer.observe(37, labels)
     self.assertEqual(len(observer.aggregators), 0)
Ejemplo n.º 2
0
 def test_observe_incorrect_type(self, logger_mock):
     meter = metrics.MeterProvider().get_meter(__name__)
     observer = metrics.Observer(None, "name", "desc", "unit", int, meter,
                                 ("key", ), True)
     labels = {"key": "value"}
     observer.observe(37.0, labels)
     self.assertEqual(len(observer.aggregators), 0)
     self.assertTrue(logger_mock.warning.called)
Ejemplo n.º 3
0
    def test_run(self):
        meter = metrics.MeterProvider().get_meter(__name__)

        callback = mock.Mock()
        observer = metrics.Observer(callback, "name", "desc", "unit", int,
                                    meter, (), True)

        self.assertTrue(observer.run())
        callback.assert_called_once_with(observer)
Ejemplo n.º 4
0
    def test_run_exception(self, logger_mock):
        meter = metrics.MeterProvider().get_meter(__name__)

        callback = mock.Mock()
        callback.side_effect = Exception("We have a problem!")

        observer = metrics.Observer(callback, "name", "desc", "unit", int,
                                    meter, (), True)

        self.assertFalse(observer.run())
        self.assertTrue(logger_mock.warning.called)
Ejemplo n.º 5
0
    def test_collect_observers(self):
        meter = metrics.MeterProvider().get_meter(__name__)
        batcher_mock = mock.Mock()
        meter.batcher = batcher_mock

        def callback(observer):
            self.assertIsInstance(observer, metrics_api.Observer)
            observer.observe(45, {})

        observer = metrics.Observer(callback, "name", "desc", "unit", int,
                                    meter, (), True)

        meter.observers.add(observer)
        meter.collect()
        self.assertTrue(batcher_mock.process.called)
Ejemplo n.º 6
0
    def test_observe(self):
        meter = metrics.MeterProvider().get_meter(__name__)
        observer = metrics.Observer(None, "name", "desc", "unit", int, meter,
                                    ("key", ), True)
        labels = {"key": "value"}
        key_labels = tuple(sorted(labels.items()))
        values = (37, 42, 7, 21)
        for val in values:
            observer.observe(val, labels)
        self.assertEqual(
            observer.aggregators[key_labels].mmsc.current,
            (min(values), max(values), sum(values), len(values)),
        )

        self.assertEqual(observer.aggregators[key_labels].current, values[-1])
Ejemplo n.º 7
0
    def test_observe(self):
        meter = metrics.MeterProvider().get_meter(__name__)
        observer = metrics.Observer(None, "name", "desc", "unit", int, meter,
                                    ("key", ), True)
        kvp = {"key": "value"}
        label_set = meter.get_label_set(kvp)
        values = (37, 42, 7, 21)
        for val in values:
            observer.observe(val, label_set)
        self.assertEqual(
            observer.aggregators[label_set].mmsc.current,
            (min(values), max(values), sum(values), len(values)),
        )

        self.assertEqual(observer.aggregators[label_set].current, values[-1])