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)
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)
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)
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)), )
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), )
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)