X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fgenerator_cpta.py;h=262fc458b7b373c83fce3f2d84acc71335a77f92;hb=f0a4ac6b0e3bb8c0f9eefaee15e672687251a3ba;hp=a308f64e2e7406b7486104e07db7da3616f39446;hpb=48cd54ff00049d58494834d25d3f0ac846ce4017;p=csit.git diff --git a/resources/tools/presentation/generator_cpta.py b/resources/tools/presentation/generator_cpta.py index a308f64e2e..262fc458b7 100644 --- a/resources/tools/presentation/generator_cpta.py +++ b/resources/tools/presentation/generator_cpta.py @@ -92,20 +92,31 @@ THEME_OVERRIDES = u"""/* override table width restrictions */ } """ -COLORS = [ - u"SkyBlue", u"Olive", u"Purple", u"Coral", u"Indigo", u"Pink", - u"Chocolate", u"Brown", u"Magenta", u"Cyan", u"Orange", u"Black", - u"Violet", u"Blue", u"Yellow", u"BurlyWood", u"CadetBlue", u"Crimson", - u"DarkBlue", u"DarkCyan", u"DarkGreen", u"Green", u"GoldenRod", - u"LightGreen", u"LightSeaGreen", u"LightSkyBlue", u"Maroon", - u"MediumSeaGreen", u"SeaGreen", u"LightSlateGrey", - u"SkyBlue", u"Olive", u"Purple", u"Coral", u"Indigo", u"Pink", - u"Chocolate", u"Brown", u"Magenta", u"Cyan", u"Orange", u"Black", - u"Violet", u"Blue", u"Yellow", u"BurlyWood", u"CadetBlue", u"Crimson", - u"DarkBlue", u"DarkCyan", u"DarkGreen", u"Green", u"GoldenRod", - u"LightGreen", u"LightSeaGreen", u"LightSkyBlue", u"Maroon", - u"MediumSeaGreen", u"SeaGreen", u"LightSlateGrey" -] +COLORS = ( + u"#1A1110", + u"#DA2647", + u"#214FC6", + u"#01786F", + u"#BD8260", + u"#FFD12A", + u"#A6E7FF", + u"#738276", + u"#C95A49", + u"#FC5A8D", + u"#CEC8EF", + u"#391285", + u"#6F2DA8", + u"#FF878D", + u"#45A27D", + u"#FFD0B9", + u"#FD5240", + u"#DB91EF", + u"#44D7A8", + u"#4F86F7", + u"#84DE02", + u"#FFCFF1", + u"#614051" +) def generate_cpta(spec, data): @@ -146,7 +157,7 @@ def generate_cpta(spec, data): def _generate_trending_traces(in_data, job_name, build_info, - name=u"", color=u""): + name=u"", color=u"", incl_tests=u"MRR"): """Generate the trending traces: - samples, - outliers, regress, progress @@ -157,15 +168,20 @@ def _generate_trending_traces(in_data, job_name, build_info, :param build_info: Information about the builds. :param name: Name of the plot :param color: Name of the color for the plot. + :param incl_tests: Included tests, accepted values: MRR, NDR, PDR :type in_data: OrderedDict :type job_name: str :type build_info: dict :type name: str :type color: str + :type incl_tests: str :returns: Generated traces (list) and the evaluated result. :rtype: tuple(traces, result) """ + if incl_tests not in (u"MRR", u"NDR", u"PDR"): + return list(), None + data_x = list(in_data.keys()) data_y_pps = list() data_y_mpps = list() @@ -181,29 +197,37 @@ def _generate_trending_traces(in_data, job_name, build_info, str_key = str(key) date = build_info[job_name][str_key][0] hover_str = (u"date: {date}
" - u"average [Mpps]: {value:.3f}
" - u"stdev [Mpps]: {stdev:.3f}
" + u"{property} [Mpps]: {value:.3f}
" + u"" u"{sut}-ref: {build}
" - u"csit-ref: mrr-{period}-build-{build_nr}
" + u"csit-ref: {test}-{period}-build-{build_nr}
" u"testbed: {testbed}") + if incl_tests == u"MRR": + hover_str = hover_str.replace( + u"", f"stdev [Mpps]: {data_y_stdev[index]:.3f}
" + ) + else: + hover_str = hover_str.replace(u"", u"") if u"dpdk" in job_name: hover_text.append(hover_str.format( date=date, + property=u"average" if incl_tests == u"MRR" else u"throughput", value=data_y_mpps[index], - stdev=data_y_stdev[index], sut=u"dpdk", build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0], + test=incl_tests.lower(), period=u"weekly", build_nr=str_key, testbed=build_info[job_name][str_key][2])) elif u"vpp" in job_name: hover_text.append(hover_str.format( date=date, + property=u"average" if incl_tests == u"MRR" else u"throughput", value=data_y_mpps[index], - stdev=data_y_stdev[index], sut=u"vpp", build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0], - period=u"daily", + test=incl_tests.lower(), + period=u"daily" if incl_tests == u"MRR" else u"weekly", build_nr=str_key, testbed=build_info[job_name][str_key][2])) @@ -353,6 +377,8 @@ def _generate_all_charts(spec, input_data): logging.info(f" Generating the chart {graph.get(u'title', u'')} ...") + incl_tests = graph.get(u"include-tests", u"MRR") + job_name = list(graph[u"data"].keys())[0] csv_tbl = list() @@ -367,13 +393,13 @@ def _generate_all_charts(spec, input_data): if graph.get(u"include", None): data = input_data.filter_tests_by_name( graph, - params=[u"type", u"result", u"tags"], + params=[u"type", u"result", u"throughput", u"tags"], continue_on_error=True ) else: data = input_data.filter_data( graph, - params=[u"type", u"result", u"tags"], + params=[u"type", u"result", u"throughput", u"tags"], continue_on_error=True) if data is None or data.empty: @@ -390,9 +416,20 @@ def _generate_all_charts(spec, input_data): if chart_data.get(test_name, None) is None: chart_data[test_name] = OrderedDict() try: + if incl_tests == u"MRR": + rate = test[u"result"][u"receive-rate"] + stdev = test[u"result"][u"receive-stdev"] + elif incl_tests == u"NDR": + rate = test[u"throughput"][u"NDR"][u"LOWER"] + stdev = float(u"nan") + elif incl_tests == u"PDR": + rate = test[u"throughput"][u"PDR"][u"LOWER"] + stdev = float(u"nan") + else: + continue chart_data[test_name][int(index)] = { - u"receive-rate": test[u"result"][u"receive-rate"], - u"receive-stdev": test[u"result"][u"receive-stdev"] + u"receive-rate": rate, + u"receive-stdev": stdev } chart_tags[test_name] = test.get(u"tags", None) except (KeyError, TypeError): @@ -421,6 +458,9 @@ def _generate_all_charts(spec, input_data): visible = list() for tag in group: for tst_name, test_data in chart_data.items(): + logging.info(tst_name) + logging.info(tst_data) + logging.info(u"---------------------------------------") if not test_data: logging.warning(f"No data for the test {tst_name}") continue @@ -433,7 +473,9 @@ def _generate_all_charts(spec, input_data): build_info=build_info, name=u'-'.join(tst_name.split(u'.')[-1]. split(u'-')[2:-1]), - color=COLORS[index]) + color=COLORS[index], + incl_tests=incl_tests + ) except IndexError: logging.error(f"Out of colors: index: " f"{index}, test: {tst_name}") @@ -457,7 +499,9 @@ def _generate_all_charts(spec, input_data): build_info=build_info, name=u'-'.join( tst_name.split(u'.')[-1].split(u'-')[2:-1]), - color=COLORS[index]) + color=COLORS[index], + incl_tests=incl_tests + ) except IndexError: logging.error( f"Out of colors: index: {index}, test: {tst_name}"