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