X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fgenerator_plots.py;h=2d723145bf998f5112cd9bb0360ba3b432dd9ce0;hp=f273aeb97bc036abb46fdd397e3e65148207a176;hb=92a8cc02adf1b8c152685c46a9f0d9413b518115;hpb=d8fc1521b8def68adc8f4a390aa2d25db806ea4f diff --git a/resources/tools/presentation/generator_plots.py b/resources/tools/presentation/generator_plots.py index f273aeb97b..2d723145bf 100644 --- a/resources/tools/presentation/generator_plots.py +++ b/resources/tools/presentation/generator_plots.py @@ -145,24 +145,32 @@ def plot_statistics(plot, input_data): d_y_fail = meta[u"tests_failed"] minutes = meta[u"elapsedtime"] // 60000 duration = f"{(minutes // 60):02d}:{(minutes % 60):02d}" - version = meta[u"version"] + version = meta.get(u"version", u"") except (KeyError, IndexError, ValueError, AttributeError): continue data_x.append(date) data_y_pass.append(d_y_pass) data_y_fail.append(d_y_fail) data_y_duration.append(minutes) + if u"vpp" in job: + sut = u"vpp" + elif u"dpdk" in job: + sut = u"dpdk" + elif u"trex" in job: + sut = u"trex" + else: + sut = u"" hover_text.append(hover_str.format( date=date, passed=d_y_pass, failed=d_y_fail, duration=duration, - sut=u"vpp" if u"vpp" in job else u"dpdk", + sut=sut, build=version, test=u"mrr" if u"mrr" in job else u"ndrpdr", period=u"daily" if u"daily" in job else u"weekly", build_nr=build_nr, - testbed=meta[u"testbed"] + testbed=meta.get(u"testbed", u"") )) traces = [ @@ -193,9 +201,9 @@ def plot_statistics(plot, input_data): logging.info(f" Writing the file {name_file}") plpl = plgo.Figure(data=traces, layout=plot[u"layout"]) - tickvals = [min(data_y_duration), max(data_y_duration)] - step = (tickvals[1] - tickvals[0]) / 6 - for i in range(6): + tickvals = [0, (max(data_y_duration) // 60) * 60] + step = tickvals[1] / 5 + for i in range(5): tickvals.append(int(tickvals[0] + step * (i + 1))) plpl.update_layout( yaxis2=dict( @@ -203,6 +211,7 @@ def plot_statistics(plot, input_data): anchor=u"x", overlaying=u"y", side=u"right", + rangemode="tozero", tickmode=u"array", tickvals=tickvals, ticktext=[f"{(val // 60):02d}:{(val % 60):02d}" for val in tickvals] @@ -768,7 +777,6 @@ def plot_perf_box_name(plot, input_data): else: data_y = [y / 1e6 if y else None for y in df_y[col]] kwargs = dict( - x=[str(i + 1) + u'.'] * len(df_y[col]), y=data_y, name=( f"{i + 1}. " @@ -780,6 +788,7 @@ def plot_perf_box_name(plot, input_data): ) if test_type in (u"SOAK", ): kwargs[u"boxpoints"] = u"all" + kwargs[u"jitter"] = 0.3 traces.append(plgo.Box(**kwargs)) @@ -794,6 +803,8 @@ def plot_perf_box_name(plot, input_data): try: # Create plot layout = deepcopy(plot[u"layout"]) + layout[u"xaxis"][u"tickvals"] = [i for i in range(len(y_vals))] + layout[u"xaxis"][u"ticktext"] = [str(i + 1) for i in range(len(y_vals))] if layout.get(u"title", None): if test_type in (u"HOSTSTACK", ): layout[u"title"] = f"Bandwidth: {layout[u'title']}" @@ -890,20 +901,23 @@ def plot_ndrpdr_box_name(plot, input_data): REGEX_NIC, u'', key.lower().replace(u'-ndrpdr', u''). replace(u'2n1l-', u'') ) - traces.append( - plgo.Box( - x=[data_x[idx], ] * len(data_x), - y=[y / 1e6 if y else None for y in vals], - name=( - f"{idx+1}." - f"({len(vals):02d} " - f"run" - f"{u's' if len(vals) > 1 else u''}) " - f"{name}" - ), - hoverinfo=u"y+name" - ) + kwargs = dict( + y=[y / 1e6 if y else None for y in vals], + name=( + f"{idx + 1}." + f"({len(vals):02d} " + f"run" + f"{u's' if len(vals) > 1 else u''}) " + f"{name}" + ), + hoverinfo=u"y+name" ) + box_points = plot.get(u"boxpoints", None) + if box_points and box_points in \ + (u"all", u"outliers", u"suspectedoutliers", False): + kwargs[u"boxpoints"] = box_points + kwargs[u"jitter"] = 0.3 + traces.append(plgo.Box(**kwargs)) try: data_y_max.append(max(vals)) except ValueError as err: @@ -911,6 +925,9 @@ def plot_ndrpdr_box_name(plot, input_data): try: # Create plot layout = deepcopy(plot[u"layout"]) + layout[u"xaxis"][u"tickvals"] = [i for i in range(len(data_y))] + layout[u"xaxis"][u"ticktext"] = \ + [str(i + 1) for i in range(len(data_y))] if layout.get(u"title", None): layout[u"title"] = \ layout[u'title'].format(core=core, test_type=ttype) @@ -999,18 +1016,24 @@ def plot_mrr_box_name(plot, input_data): # Add plot traces traces = list() for idx, x_item in enumerate(data_x): - traces.append( - plgo.Box( - x=[x_item, ] * len(data_y[idx]), - y=data_y[idx], - name=data_names[idx], - hoverinfo=u"y+name" - ) + kwargs = dict( + y=data_y[idx], + name=data_names[idx], + hoverinfo=u"y+name" ) + box_points = plot.get(u"boxpoints", None) + if box_points and box_points in \ + (u"all", u"outliers", u"suspectedoutliers", False): + kwargs[u"boxpoints"] = box_points + kwargs["jitter"] = 0.3 + traces.append(plgo.Box(**kwargs)) try: # Create plot layout = deepcopy(plot[u"layout"]) + layout[u"xaxis"][u"tickvals"] = [i for i in range(len(data_y))] + layout[u"xaxis"][u"ticktext"] = \ + [str(i + 1) for i in range(len(data_y))] if layout.get(u"title", None): layout[u"title"] = ( f"Tput: {layout[u'title'].format(core=core)}" @@ -1513,8 +1536,6 @@ def plot_nf_heatmap(plot, input_data): regex_test_name = re.compile(r'^.*-(\d+ch|\d+pl)-' r'(\d+mif|\d+vh)-' r'(\d+vm\d+t|\d+dcr\d+t|\d+dcr\d+c).*$') - vals = dict() - # Transform the data logging.info( f" Creating the data set for the {plot.get(u'type', u'')} " @@ -1531,6 +1552,7 @@ def plot_nf_heatmap(plot, input_data): for ttype in plot.get(u"test-type", (u"ndr", u"pdr")): for core in plot.get(u"core", tuple()): + vals = dict() for item in plot.get(u"include", tuple()): reg_ex = re.compile(str(item.format(core=core)).lower()) for job in in_data: