Exemple #1
0
    def test_release_bound_instrument(self):
        meter = metrics.MeterProvider().get_meter(__name__)
        label_keys = ("key1",)
        kvp = {"key1": "value1"}
        label_set = meter.get_label_set(kvp)

        counter = metrics.Counter(
            "name", "desc", "unit", float, meter, label_keys
        )
        meter.metrics.add(counter)
        bound_counter = counter.bind(label_set)
        bound_counter.add(4.0)

        measure = metrics.Measure(
            "name", "desc", "unit", float, meter, label_keys
        )
        meter.metrics.add(measure)
        bound_measure = measure.bind(label_set)
        bound_measure.record(42)

        bound_counter.release()
        bound_measure.release()

        # be sure that bound instruments are only released after collection
        self.assertEqual(len(counter.bound_instruments), 1)
        self.assertEqual(len(measure.bound_instruments), 1)

        meter.collect()

        self.assertEqual(len(counter.bound_instruments), 0)
        self.assertEqual(len(measure.bound_instruments), 0)
Exemple #2
0
    def test_direct_call_release_bound_instrument(self):
        meter = metrics.MeterProvider().get_meter(__name__)
        label_keys = ("key1",)
        kvp = {"key1": "value1"}
        label_set = meter.get_label_set(kvp)

        counter = metrics.Counter(
            "name", "desc", "unit", float, meter, label_keys
        )
        meter.metrics.add(counter)
        counter.add(4.0, label_set)

        measure = metrics.Measure(
            "name", "desc", "unit", float, meter, label_keys
        )
        meter.metrics.add(measure)
        measure.record(42.0, label_set)

        self.assertEqual(len(counter.bound_instruments), 1)
        self.assertEqual(len(measure.bound_instruments), 1)

        meter.collect()

        self.assertEqual(len(counter.bound_instruments), 0)
        self.assertEqual(len(measure.bound_instruments), 0)
Exemple #3
0
 def test_record(self):
     meter = metrics.Meter()
     metric = metrics.Measure("name", "desc", "unit", int, ("key",))
     kvp = {"key": "value"}
     label_set = meter.get_label_set(kvp)
     handle = metric.get_handle(label_set)
     metric.record(label_set, 3)
     # Record not implemented yet
     self.assertEqual(handle.data, 0)
Exemple #4
0
 def test_record_batch_multiple(self):
     meter = metrics.Meter()
     label_keys = ("key1", "key2", "key3")
     label_values = ("value1", "value2", "value3")
     counter = metrics.Counter("name", "desc", "unit", float, label_keys)
     gauge = metrics.Gauge("name", "desc", "unit", int, label_keys)
     measure = metrics.Measure("name", "desc", "unit", float, label_keys)
     record_tuples = [(counter, 1.0), (gauge, 5), (measure, 3.0)]
     meter.record_batch(label_values, record_tuples)
     self.assertEqual(counter.get_handle(label_values).data, 1.0)
     self.assertEqual(gauge.get_handle(label_values).data, 5)
     self.assertEqual(measure.get_handle(label_values).data, 0)
 def test_record(self):
     meter = metrics.MeterProvider().get_meter(__name__)
     metric = metrics.Measure("name", "desc", "unit", int, meter, ("key",))
     labels = {"key": "value"}
     bound_measure = metric.bind(labels)
     values = (37, 42, 7)
     for val in values:
         metric.record(val, labels)
     self.assertEqual(
         bound_measure.aggregator.current,
         (min(values), max(values), sum(values), len(values)),
     )
 def test_record(self):
     meter = metrics.MeterProvider().get_meter(__name__)
     metric = metrics.Measure("name", "desc", "unit", int, meter, ("key", ))
     kvp = {"key": "value"}
     label_set = meter.get_label_set(kvp)
     handle = metric.get_handle(label_set)
     values = (37, 42, 7)
     for val in values:
         metric.record(val, label_set)
     self.assertEqual(
         handle.aggregator.current,
         (min(values), max(values), sum(values), len(values)),
     )
Exemple #7
0
 def test_record_batch_multiple(self):
     meter = metrics.MeterProvider().get_meter(__name__)
     label_keys = ("key1", "key2", "key3")
     kvp = {"key1": "value1", "key2": "value2", "key3": "value3"}
     label_set = meter.get_label_set(kvp)
     counter = metrics.Counter("name", "desc", "unit", float, meter,
                               label_keys)
     measure = metrics.Measure("name", "desc", "unit", float, meter,
                               label_keys)
     record_tuples = [(counter, 1.0), (measure, 3.0)]
     meter.record_batch(label_set, record_tuples)
     self.assertEqual(counter.get_handle(label_set).aggregator.current, 1.0)
     self.assertEqual(
         measure.get_handle(label_set).aggregator.current,
         (3.0, 3.0, 3.0, 1),
     )
Exemple #8
0
 def test_record(self):
     metric = metrics.Measure("name", "desc", "unit", int, ("key", ))
     handle = metric.get_handle(("value", ))
     metric.record(("value", ), 3)
     # Record not implemented yet
     self.assertEqual(handle.data, 0)