X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Fdash%2Fapp%2Fpal%2Freport%2Fgraphs.py;h=0543193d99a6e23a35c1fc7053f2abe06f4ad389;hp=634e539f7e194558af929c075fba17d8da57148c;hb=06d3f7331f9f10d99baa334b1808dfdc9c6fc8be;hpb=51da461dcdb1ed20abe73b616ceb971569c9b884
diff --git a/resources/tools/dash/app/pal/report/graphs.py b/resources/tools/dash/app/pal/report/graphs.py
index 634e539f7e..0543193d99 100644
--- a/resources/tools/dash/app/pal/report/graphs.py
+++ b/resources/tools/dash/app/pal/report/graphs.py
@@ -24,6 +24,23 @@ import hdrh.histogram
import hdrh.codec
+_NORM_FREQUENCY = 2.0 # [GHz]
+_FREQURENCY = { # [GHz]
+ "2n-aws": 1.000,
+ "2n-dnv": 2.000,
+ "2n-clx": 2.300,
+ "2n-icx": 2.600,
+ "2n-skx": 2.500,
+ "2n-tx2": 2.500,
+ "2n-zn2": 2.900,
+ "3n-alt": 3.000,
+ "3n-aws": 1.000,
+ "3n-dnv": 2.000,
+ "3n-icx": 2.600,
+ "3n-skx": 2.500,
+ "3n-tsh": 2.200
+}
+
_VALUE = {
"mrr": "result_receive_rate_rate_values",
"ndr": "result_ndr_lower_rate_value",
@@ -51,14 +68,14 @@ _LAT_HDRH = ( # Do not change the order
PERCENTILE_MAX = 99.999501
_GRAPH_LAT_HDRH_DESC = {
- u"result_latency_forward_pdr_0_hdrh": u"No-load.",
- u"result_latency_reverse_pdr_0_hdrh": u"No-load.",
- u"result_latency_forward_pdr_10_hdrh": u"Low-load, 10% PDR.",
- u"result_latency_reverse_pdr_10_hdrh": u"Low-load, 10% PDR.",
- u"result_latency_forward_pdr_50_hdrh": u"Mid-load, 50% PDR.",
- u"result_latency_reverse_pdr_50_hdrh": u"Mid-load, 50% PDR.",
- u"result_latency_forward_pdr_90_hdrh": u"High-load, 90% PDR.",
- u"result_latency_reverse_pdr_90_hdrh": u"High-load, 90% PDR."
+ "result_latency_forward_pdr_0_hdrh": "No-load.",
+ "result_latency_reverse_pdr_0_hdrh": "No-load.",
+ "result_latency_forward_pdr_10_hdrh": "Low-load, 10% PDR.",
+ "result_latency_reverse_pdr_10_hdrh": "Low-load, 10% PDR.",
+ "result_latency_forward_pdr_50_hdrh": "Mid-load, 50% PDR.",
+ "result_latency_reverse_pdr_50_hdrh": "Mid-load, 50% PDR.",
+ "result_latency_forward_pdr_90_hdrh": "High-load, 90% PDR.",
+ "result_latency_reverse_pdr_90_hdrh": "High-load, 90% PDR."
}
@@ -144,7 +161,8 @@ def select_iterative_data(data: pd.DataFrame, itm:dict) -> pd.DataFrame:
return df
-def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
+def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict,
+ normalize: bool) -> tuple:
"""
"""
@@ -162,13 +180,19 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
itm_data = select_iterative_data(data, itm)
if itm_data.empty:
continue
+ phy = itm["phy"].split("-")
+ topo_arch = f"{phy[0]}-{phy[1]}" if len(phy) == 4 else str()
+ norm_factor = (_NORM_FREQUENCY / _FREQURENCY[topo_arch]) \
+ if normalize else 1.0
if itm["testtype"] == "mrr":
- y_data = itm_data[_VALUE[itm["testtype"]]].to_list()[0]
- if y_data.size > 0:
+ y_data_raw = itm_data[_VALUE[itm["testtype"]]].to_list()[0]
+ y_data = [y * norm_factor for y in y_data_raw]
+ if len(y_data) > 0:
y_tput_max = \
max(y_data) if max(y_data) > y_tput_max else y_tput_max
else:
- y_data = itm_data[_VALUE[itm["testtype"]]].to_list()
+ y_data_raw = itm_data[_VALUE[itm["testtype"]]].to_list()
+ y_data = [y * norm_factor for y in y_data_raw]
if y_data:
y_tput_max = \
max(y_data) if max(y_data) > y_tput_max else y_tput_max
@@ -178,7 +202,7 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
name=(
f"{idx + 1}. "
f"({nr_of_samples:02d} "
- f"run{u's' if nr_of_samples > 1 else u''}) "
+ f"run{'s' if nr_of_samples > 1 else ''}) "
f"{itm['id']}"
),
hoverinfo=u"y+name",
@@ -190,7 +214,8 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
show_tput = True
if itm["testtype"] == "pdr":
- y_lat = itm_data[_VALUE["pdr-lat"]].to_list()
+ y_lat_row = itm_data[_VALUE["pdr-lat"]].to_list()
+ y_lat = [y * norm_factor for y in y_lat_row]
if y_lat:
y_lat_max = max(y_lat) if max(y_lat) > y_lat_max else y_lat_max
nr_of_samples = len(y_lat)
@@ -202,7 +227,7 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
f"run{u's' if nr_of_samples > 1 else u''}) "
f"{itm['id']}"
),
- hoverinfo=u"y+name",
+ hoverinfo="all",
boxpoints="all",
jitter=0.3,
marker=dict(color=_get_color(idx))
@@ -215,24 +240,25 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
if show_tput:
pl_tput = deepcopy(layout["plot-throughput"])
- pl_tput[u"xaxis"][u"tickvals"] = [i for i in range(len(sel))]
- pl_tput[u"xaxis"][u"ticktext"] = [str(i + 1) for i in range(len(sel))]
+ pl_tput["xaxis"]["tickvals"] = [i for i in range(len(sel))]
+ pl_tput["xaxis"]["ticktext"] = [str(i + 1) for i in range(len(sel))]
if y_tput_max:
- pl_tput[u"yaxis"][u"range"] = [0, (int(y_tput_max / 1e6) + 1) * 1e6]
+ pl_tput["yaxis"]["range"] = [0, (int(y_tput_max / 1e6) + 1) * 1e6]
fig_tput = go.Figure(data=tput_traces, layout=pl_tput)
if show_latency:
pl_lat = deepcopy(layout["plot-latency"])
- pl_lat[u"xaxis"][u"tickvals"] = [i for i in range(len(x_lat))]
- pl_lat[u"xaxis"][u"ticktext"] = x_lat
+ pl_lat["xaxis"]["tickvals"] = [i for i in range(len(x_lat))]
+ pl_lat["xaxis"]["ticktext"] = x_lat
if y_lat_max:
- pl_lat[u"yaxis"][u"range"] = [0, (int(y_lat_max / 10) + 1) * 10]
+ pl_lat["yaxis"]["range"] = [0, (int(y_lat_max / 10) + 1) * 10]
fig_lat = go.Figure(data=lat_traces, layout=pl_lat)
return fig_tput, fig_lat
-def table_comparison(data: pd.DataFrame, sel:dict) -> pd.DataFrame:
+def table_comparison(data: pd.DataFrame, sel:dict,
+ normalize: bool) -> pd.DataFrame:
"""
"""
table = pd.DataFrame(
@@ -305,7 +331,7 @@ def graph_hdrh_latency(data: dict, layout: dict) -> go.Figure:
yaxis.append(item.value_iterated_to)
hovertext.append(
f"{_GRAPH_LAT_HDRH_DESC[lat_name]}
"
- f"Direction: {(u'W-E', u'E-W')[idx % 2]}
"
+ f"Direction: {('W-E', 'E-W')[idx % 2]}
"
f"Percentile: {prev_perc:.5f}-{percentile:.5f}%
"
f"Latency: {item.value_iterated_to}uSec"
)
@@ -314,7 +340,7 @@ def graph_hdrh_latency(data: dict, layout: dict) -> go.Figure:
yaxis.append(item.value_iterated_to)
hovertext.append(
f"{_GRAPH_LAT_HDRH_DESC[lat_name]}
"
- f"Direction: {(u'W-E', u'E-W')[idx % 2]}
"
+ f"Direction: {('W-E', 'E-W')[idx % 2]}
"
f"Percentile: {prev_perc:.5f}-{percentile:.5f}%
"
f"Latency: {item.value_iterated_to}uSec"
)
@@ -326,16 +352,16 @@ def graph_hdrh_latency(data: dict, layout: dict) -> go.Figure:
x=xaxis,
y=yaxis,
name=_GRAPH_LAT_HDRH_DESC[lat_name],
- mode=u"lines",
+ mode="lines",
legendgroup=_GRAPH_LAT_HDRH_DESC[lat_name],
showlegend=bool(idx % 2),
line=dict(
color=_get_color(int(idx/2)),
- dash=u"solid",
+ dash="solid",
width=1 if idx % 2 else 2
),
hovertext=hovertext,
- hoverinfo=u"text"
+ hoverinfo="text"
)
)
if traces: