X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fgenerator_cpta.py;h=2f2ab970e4c58de96cee49e14cad25edd8874d4e;hb=7a26d43c4f71869695ba19ce58f9afac9a1d176d;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..2f2ab970e4 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,31 +197,44 @@ 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"-cps" in name: + hover_str = hover_str.replace(u"[Mpps]", u"[Mcps]") 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( + hover_str = 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])) + testbed=build_info[job_name][str_key][2]) + if u"-cps" in name: + hover_str = hover_str.replace(u"throughput", u"connection rate") + hover_text.append(hover_str) xaxis.append(datetime(int(date[0:4]), int(date[4:6]), int(date[6:8]), int(date[9:11]), int(date[12:]))) @@ -353,6 +382,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 +398,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 +421,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): @@ -433,7 +475,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 +501,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}"