Esempio n. 1
0
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"])
Esempio n. 2
0
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)
Esempio n. 3
0
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
    )
Esempio n. 4
0
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"]
Esempio n. 5
0
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__"
        ]
    )
Esempio n. 6
0
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"
        ]
    )