def test_default_aggregator(self, logger_mock): meter = metrics.MeterProvider().get_meter(__name__) counter = metrics.Counter("", "", "1", int, meter) self.assertEqual(view.get_default_aggregator(counter), aggregate.SumAggregator) ud_counter = metrics.UpDownCounter("", "", "1", int, meter) self.assertEqual(view.get_default_aggregator(ud_counter), aggregate.SumAggregator) observer = metrics.SumObserver(lambda: None, "", "", "1", int) self.assertEqual( view.get_default_aggregator(observer), aggregate.LastValueAggregator, ) ud_observer = metrics.SumObserver(lambda: None, "", "", "1", int) self.assertEqual( view.get_default_aggregator(ud_observer), aggregate.LastValueAggregator, ) recorder = metrics.ValueRecorder("", "", "1", int, meter) self.assertEqual( view.get_default_aggregator(recorder), aggregate.MinMaxSumCountAggregator, ) v_observer = metrics.ValueObserver(lambda: None, "", "", "1", int) self.assertEqual( view.get_default_aggregator(v_observer), aggregate.ValueObserverAggregator, ) self.assertEqual(view.get_default_aggregator(DummyMetric()), aggregate.SumAggregator) self.assertEqual(logger_mock.warning.call_count, 1)
def test_add(self): meter = metrics.MeterProvider().get_meter(__name__) metric = metrics.UpDownCounter("name", "desc", "unit", int, meter) labels = {"key": "value"} bound_counter = metric.bind(labels) counter_v = View(metric, SumAggregator) meter.register_view(counter_v) metric.add(3, labels) metric.add(2, labels) self.assertEqual(bound_counter.view_datas.pop().aggregator.current, 5)
def test_add(self, logger_mock): meter = metrics.MeterProvider().get_meter(__name__) metric = metrics.UpDownCounter("name", "desc", "unit", int, meter, ("key", )) labels = {"key": "value"} bound_counter = metric.bind(labels) metric.add(3, labels) metric.add(2, labels) self.assertEqual(bound_counter.aggregator.current, 5) metric.add(0, labels) metric.add(-3, labels) metric.add(-1, labels) self.assertEqual(bound_counter.aggregator.current, 1) self.assertEqual(logger_mock.warning.call_count, 0)