def test_labeled_string_type(ping_schema_url): labeled_string_metric = metrics.LabeledStringMetricType( disabled=False, category="telemetry", lifetime=Lifetime.APPLICATION, name="labeled_string_metric", send_in_pings=["metrics"], ) labeled_string_metric["label1"].set("foo") labeled_string_metric["label2"].set("bar") assert labeled_string_metric["label1"].test_has_value() assert "foo" == labeled_string_metric["label1"].test_get_value() assert labeled_string_metric["label2"].test_has_value() assert "bar" == labeled_string_metric["label2"].test_get_value() json_content = Glean.test_collect(_builtins.pings.metrics) assert 0 == validate_ping.validate_ping(io.StringIO(json_content), sys.stdout, schema_url=ping_schema_url) tree = json.loads(json_content) assert ("foo" == tree["metrics"]["labeled_string"] ["telemetry.labeled_string_metric"]["label1"]) assert ("bar" == tree["metrics"]["labeled_string"] ["telemetry.labeled_string_metric"]["label2"])
def test_other_label_without_predefined_labels(ping_schema_url): labeled_counter_metric = metrics.LabeledCounterMetricType( disabled=False, category="telemetry", lifetime=Lifetime.APPLICATION, name="labeled_counter_metric", send_in_pings=["metrics"], ) for i in range(21): labeled_counter_metric["label_{}".format(i)].add(1) labeled_counter_metric["label_0"].add(1) assert 2 == labeled_counter_metric["label_0"].test_get_value() for i in range(1, 16): assert 1 == labeled_counter_metric["label_{}".format( i)].test_get_value() assert 5 == labeled_counter_metric["__other__"].test_get_value() json_content = Glean.test_collect(_builtins.pings.metrics) assert 0 == validate_ping.validate_ping(io.StringIO(json_content), sys.stdout, schema_url=ping_schema_url)
def test_collect(ping_schema_url): counter_metric = CounterMetricType( disabled=False, category="telemetry", lifetime=Lifetime.APPLICATION, name="counter_metric", send_in_pings=["store1"], ) custom_ping = PingType( name="store1", include_client_id=True, send_if_empty=False, reason_codes=[] ) counter_metric.add(10) json_content = Glean.test_collect(custom_ping) assert isinstance(json_content, str) json_tree = json.loads(json_content) assert 10 == json_tree["metrics"]["counter"]["telemetry.counter_metric"] assert 0 == validate_ping.validate_ping( io.StringIO(json_content), sys.stdout, schema_url=ping_schema_url )
def test_overflowing_the_task_queue_records_telemetry(): Dispatcher.set_task_queueing(True) for i in range(110): Dispatcher.launch(lambda: None) assert 100 == len(Dispatcher._preinit_task_queue) assert 10 == Dispatcher._overflow_count Dispatcher.flush_queued_initial_tasks() assert 110 == _builtins.metrics.glean.error.preinit_tasks_overflow.test_get_value() json_content = Glean.test_collect(_builtins.pings.metrics) json_tree = json.loads(json_content) assert 110 == json_tree["metrics"]["counter"]["glean.error.preinit_tasks_overflow"]
def test_other_label_with_predefined_labels(): labeled_counter_metric = metrics.LabeledCounterMetricType( disabled=False, category="telemetry", lifetime=Lifetime.APPLICATION, name="labeled_counter_metric", send_in_pings=["metrics"], labels=["foo", "bar", "baz"], ) labeled_counter_metric["foo"].add(1) labeled_counter_metric["foo"].add(2) labeled_counter_metric["bar"].add(1) labeled_counter_metric["not_there"].add(1) labeled_counter_metric["also_not_there"].add(1) labeled_counter_metric["not_me"].add(1) assert 3 == labeled_counter_metric["foo"].test_get_value() assert 1 == labeled_counter_metric["bar"].test_get_value() assert not labeled_counter_metric["baz"].test_has_value() assert 3 == labeled_counter_metric["not_there"].test_get_value() json_content = Glean.test_collect(_builtins.pings.metrics) assert 0 == validate_ping.validate_ping(io.StringIO(json_content), sys.stdout) tree = json.loads(json_content) assert ( 3 == tree["metrics"]["labeled_counter"]["telemetry.labeled_counter_metric"]["foo"] ) assert ( 1 == tree["metrics"]["labeled_counter"]["telemetry.labeled_counter_metric"]["bar"] ) assert ( 3 == tree["metrics"]["labeled_counter"]["telemetry.labeled_counter_metric"][ "__other__" ] )
def test_labeled_counter_type(): labeled_counter_metric = metrics.LabeledCounterMetricType( disabled=False, category="telemetry", lifetime=Lifetime.APPLICATION, name="labeled_counter_metric", send_in_pings=["metrics"], ) labeled_counter_metric["label1"].add(1) labeled_counter_metric["label2"].add(2) assert labeled_counter_metric["label1"].test_has_value() assert 1 == labeled_counter_metric["label1"].test_get_value() assert labeled_counter_metric["label2"].test_has_value() assert 2 == labeled_counter_metric["label2"].test_get_value() json_content = Glean.test_collect(_builtins.pings.metrics) assert 0 == validate_ping.validate_ping(io.StringIO(json_content), sys.stdout) tree = json.loads(json_content) assert ( 1 == tree["metrics"]["labeled_counter"]["telemetry.labeled_counter_metric"][ "label1" ] ) assert ( 2 == tree["metrics"]["labeled_counter"]["telemetry.labeled_counter_metric"][ "label2" ] )