コード例 #1
0
def test_numerical_scalars():
    metric_count = defaultdict(lambda: defaultdict(int))
    scalar_metrics = set([k.upper() for k in d.scalars_template.keys()])
    keyed_scalar_metrics = set([k.upper() for k in d.keyed_scalars_template.keys()])
    keyed_scalar_metrics |= set([k.upper() for k in d.private_keyed_scalars_template.keys()])

    for aggregate in build_id_aggregates:
        for key, value in aggregate[1].iteritems():
            metric, label, process_type = key

            if metric.startswith(NUMERIC_SCALARS_PREFIX):
                orig_name = metric.replace(NUMERIC_SCALARS_PREFIX + "_", "")
                assert(orig_name in scalar_metrics | keyed_scalar_metrics)

                if orig_name in scalar_metrics:
                    assert(label == "")
                else:
                    assert(label != "")
                    metric = "{}_{}".format(metric, label)

                metric_count[metric][process_type] += 1
                assert value["count"] == d.expected_count(process_type, True), (
                    "Expected {}, Got {}, Process {}".format(d.expected_count(process_type, True), value["count"], process_type))
                assert(value["sum"] == value["count"] * d.SCALAR_VALUE)
                assert(value["histogram"][str(d.NUMERIC_SCALAR_BUCKET)] == value["count"])

    keyed_scalars_template_len = len([key for m, dic in d.keyed_scalars_template.iteritems() for key in dic])
    keyed_scalars_template_len += len([key for m, dic in d.private_keyed_scalars_template.iteritems() for key in dic])
    assert len(metric_count) == len(d.scalars_template) + keyed_scalars_template_len
    for metric, process_counts in metric_count.iteritems():
        assert(process_counts.viewkeys() == PROCESS_TYPES)
        for v in process_counts.values():
            assert(v == len(build_id_aggregates))
コード例 #2
0
def test_keyed_histograms(build_id_aggregates):
    metric_count = defaultdict(lambda: defaultdict(int))

    for aggregate in build_id_aggregates:
        for key, value in aggregate[1].items():
            metric, label, process_type = key

            if metric in d.keyed_histograms_template.keys():
                metric_label = f"{metric}_{label}"
                if metric_label not in metric_count:
                    metric_count[metric_label] = defaultdict(int)
                metric_count[metric_label][process_type] += 1
                assert (label != "")
                assert (value["count"] == d.expected_count(process_type))
                assert (value["sum"] == value["count"] *
                        d.keyed_histograms_template[metric][label]["sum"])

                histogram_template = d.keyed_histograms_template[metric][
                    label]["values"]
                assert (set(histogram_template.keys()) == set(
                    value["histogram"].keys()))
                assert ((pd.Series(histogram_template) *
                         value["count"] == pd.Series(
                             value["histogram"])).all())

            assert (metric not in d.ignored_keyed_histograms_template.keys())

    assert (len(metric_count) == len(d.keyed_histograms_template)
            )  # Assume one label per keyed histogram
    for process_counts in metric_count.values():
        assert (set(process_counts.keys()) == PROCESS_TYPES)
        for v in process_counts.values():
            assert (v == len(build_id_aggregates))
コード例 #3
0
def test_count_histograms(build_id_aggregates):
    metric_count = defaultdict(lambda: defaultdict(int))
    histograms = {
        "{}_{}".format(COUNT_HISTOGRAM_PREFIX, k): v
        for k, v in d.histograms_template.items()
        if v is not None and v.get("histogram_type", -1) == 4
        and not k.endswith("CONTENT_DOCUMENTS_DESTROYED")
    }

    for aggregate in build_id_aggregates:
        for key, value in aggregate[1].items():
            metric, label, process_type = key
            histogram = histograms.get(metric, None)

            if histogram:
                metric_count[metric][process_type] += 1
                assert (label == "")
                assert (value["count"] == d.expected_count(process_type))
                assert (value["sum"] == value["count"] * histogram["sum"])
                assert (value["histogram"][str(
                    d.COUNT_SCALAR_BUCKET)] == value["count"])

    assert len(metric_count) == len(histograms)
    for process_counts in metric_count.values():
        assert (set(process_counts.keys()) == PROCESS_TYPES)
        for v in process_counts.values():
            assert (v == len(build_id_aggregates))
コード例 #4
0
def test_classic_histograms(build_id_aggregates):
    metric_count = defaultdict(lambda: defaultdict(int))
    histograms = {
        k: v
        for k, v in d.histograms_template.items()
        if v is not None and v.get("histogram_type", -1) != 4
        and not k.startswith("USE_COUNTER2_")
    }

    for aggregate in build_id_aggregates:
        for key, value in aggregate[1].items():
            metric, label, process_type = key
            histogram = histograms.get(metric, None)

            if histogram:
                metric_count[metric][process_type] += 1
                assert (label == "")
                assert (value["count"] == d.expected_count(process_type))
                assert (value["sum"] == value["count"] * histogram["sum"])
                assert (set(histogram["values"].keys()) == set(
                    value["histogram"].keys()))
                assert ((pd.Series(histogram["values"]) *
                         value["count"] == pd.Series(
                             value["histogram"])).all())

    assert (len(metric_count) == len(histograms))
    for process_counts in list(metric_count.values()):
        assert (set(process_counts.keys()) == PROCESS_TYPES)
        for v in list(process_counts.values()):
            assert (v == len(build_id_aggregates))
コード例 #5
0
def test_keyed_histograms():
    metric_count = defaultdict(lambda: defaultdict(int))

    for aggregate in build_id_aggregates:
        for key, value in aggregate[1].iteritems():
            metric, label, process_type = key

            if metric in d.keyed_histograms_template.keys():
                metric_label = "{}_{}".format(metric, label)
                if metric_label not in metric_count:
                    metric_count[metric_label] = defaultdict(int)
                metric_count[metric_label][process_type] += 1
                assert(label != "")
                assert(value["count"] == d.expected_count(process_type))
                assert(value["sum"] == value["count"] * d.keyed_histograms_template[metric][label]["sum"])

                histogram_template = d.keyed_histograms_template[metric][label]["values"]
                assert(set(histogram_template.keys()) == set(value["histogram"].keys()))
                assert((pd.Series(histogram_template) * value["count"] == pd.Series(value["histogram"])).all())

            assert(metric not in d.ignored_keyed_histograms_template.keys())

    assert(len(metric_count) == len(d.keyed_histograms_template))  # Assume one label per keyed histogram
    for process_counts in metric_count.values():
        assert(process_counts.viewkeys() == PROCESS_TYPES)
        for v in process_counts.values():
            assert(v == len(build_id_aggregates))
コード例 #6
0
def test_numerical_scalars(build_id_aggregates):
    metric_count = defaultdict(lambda: defaultdict(int))
    scalar_metrics = set([k.upper() for k in d.scalars_template.keys()])
    keyed_scalar_metrics = set(
        [k.upper() for k in d.keyed_scalars_template.keys()])
    keyed_scalar_metrics |= set(
        [k.upper() for k in d.private_keyed_scalars_template.keys()])

    for aggregate in build_id_aggregates:
        for key, value in aggregate[1].iteritems():
            metric, label, process_type = key

            if metric.startswith(NUMERIC_SCALARS_PREFIX):
                orig_name = metric.replace(NUMERIC_SCALARS_PREFIX + "_", "")
                assert (orig_name in scalar_metrics | keyed_scalar_metrics)

                if orig_name in scalar_metrics:
                    assert (label == "")
                else:
                    assert (label != "")
                    metric = "{}_{}".format(metric, label)

                metric_count[metric][process_type] += 1
                assert value["count"] == d.expected_count(
                    process_type,
                    True), ("Expected {}, Got {}, Process {}".format(
                        d.expected_count(process_type, True), value["count"],
                        process_type))
                assert (value["sum"] == value["count"] * d.SCALAR_VALUE)
                assert (value["histogram"][str(
                    d.NUMERIC_SCALAR_BUCKET)] == value["count"])

    keyed_scalars_template_len = len([
        key for m, dic in d.keyed_scalars_template.iteritems() for key in dic
    ])
    keyed_scalars_template_len += len([
        key for m, dic in d.private_keyed_scalars_template.iteritems()
        for key in dic
    ])
    assert len(metric_count) == len(
        d.scalars_template) + keyed_scalars_template_len
    for metric, process_counts in metric_count.iteritems():
        assert (process_counts.viewkeys() == PROCESS_TYPES)
        for v in process_counts.values():
            assert (v == len(build_id_aggregates))
コード例 #7
0
def test_count_histograms():
    metric_count = defaultdict(lambda: defaultdict(int))
    histograms = {"{}_{}".format(COUNT_HISTOGRAM_PREFIX, k): v for k, v in d.histograms_template.iteritems()
                  if v is not None and v.get("histogram_type", -1) == 4 and not k.endswith("CONTENT_DOCUMENTS_DESTROYED")}

    for aggregate in build_id_aggregates:
        for key, value in aggregate[1].iteritems():
            metric, label, process_type = key
            histogram = histograms.get(metric, None)

            if histogram:
                metric_count[metric][process_type] += 1
                assert(label == "")
                assert(value["count"] == d.expected_count(process_type))
                assert(value["sum"] == value["count"] * histogram["sum"])
                assert(value["histogram"][str(d.COUNT_SCALAR_BUCKET)] == value["count"])

    assert len(metric_count) == len(histograms)
    for process_counts in metric_count.values():
        assert(process_counts.viewkeys() == PROCESS_TYPES)
        for v in process_counts.values():
            assert(v == len(build_id_aggregates))
コード例 #8
0
def test_classic_histograms():
    metric_count = defaultdict(lambda: defaultdict(int))
    histograms = {k: v for k, v in d.histograms_template.iteritems()
                  if v is not None and v.get("histogram_type", -1) != 4 and not k.startswith("USE_COUNTER2_")}

    for aggregate in build_id_aggregates:
        for key, value in aggregate[1].iteritems():
            metric, label, process_type = key
            histogram = histograms.get(metric, None)

            if histogram:
                metric_count[metric][process_type] += 1
                assert(label == "")
                assert(value["count"] == d.expected_count(process_type))
                assert(value["sum"] == value["count"] * histogram["sum"])
                assert(set(histogram["values"].keys()) == set(value["histogram"].keys()))
                assert((pd.Series(histogram["values"]) * value["count"] == pd.Series(value["histogram"])).all())

    assert(len(metric_count) == len(histograms))
    for process_counts in metric_count.values():
        assert(process_counts.viewkeys() == PROCESS_TYPES)
        for v in process_counts.values():
            assert(v == len(build_id_aggregates))