aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2022-06-10 13:13:08 +0200
committerTibor Frank <tifrank@cisco.com>2022-06-10 11:18:54 +0000
commit51da461dcdb1ed20abe73b616ceb971569c9b884 (patch)
tree8c117bd5324350b64b1fa5ea978df879750bca01 /resources/tools
parent575e88c3e9b386fe00cccb98364ec6be841a5ee3 (diff)
feat(uti): statistical graphs
Change-Id: Ic05d56dae08e9745582e02e59e8b76145050ca73 Signed-off-by: Tibor Frank <tifrank@cisco.com>
Diffstat (limited to 'resources/tools')
-rw-r--r--resources/tools/dash/app/pal/__init__.py2
-rw-r--r--resources/tools/dash/app/pal/report/graphs.py32
-rw-r--r--resources/tools/dash/app/pal/report/layout.py10
-rw-r--r--resources/tools/dash/app/pal/report/layout.yaml8
4 files changed, 30 insertions, 22 deletions
diff --git a/resources/tools/dash/app/pal/__init__.py b/resources/tools/dash/app/pal/__init__.py
index cb12b7dd54..c55ac96398 100644
--- a/resources/tools/dash/app/pal/__init__.py
+++ b/resources/tools/dash/app/pal/__init__.py
@@ -33,7 +33,7 @@ TIME_PERIOD = MAX_TIME_PERIOD # [days]
# List of releases used for iterative data processing.
# The releases MUST be in the order from the current (newest) to the last
# (oldest).
-RELEASES=["rls2206", "rls2202", ]
+RELEASES=["csit2206", "csit2202", ]
def init_app():
"""Construct core Flask application with embedded Dash app.
diff --git a/resources/tools/dash/app/pal/report/graphs.py b/resources/tools/dash/app/pal/report/graphs.py
index 42ae07938e..634e539f7e 100644
--- a/resources/tools/dash/app/pal/report/graphs.py
+++ b/resources/tools/dash/app/pal/report/graphs.py
@@ -60,7 +60,6 @@ _GRAPH_LAT_HDRH_DESC = {
u"result_latency_forward_pdr_90_hdrh": u"High-load, 90% PDR.",
u"result_latency_reverse_pdr_90_hdrh": u"High-load, 90% PDR."
}
-REG_EX_VPP_VERSION = re.compile(r"^(\d{2}).(\d{2})-(rc0|rc1|rc2|release$)")
def _get_color(idx: int) -> str:
@@ -83,10 +82,15 @@ def get_short_version(version: str, dut_type: str="vpp") -> str:
return version
s_version = str()
- groups = re.search(pattern=REG_EX_VPP_VERSION, string=version)
+ groups = re.search(
+ pattern=re.compile(r"^(\d{2}).(\d{2})-(rc0|rc1|rc2|release$)"),
+ string=version
+ )
if groups:
try:
- s_version = f"{groups.group(1)}.{groups.group(2)}_{groups.group(3)}"
+ s_version = \
+ f"{groups.group(1)}.{groups.group(2)}.{groups.group(3)}".\
+ replace("release", "rls")
except IndexError:
pass
@@ -132,7 +136,8 @@ def select_iterative_data(data: pd.DataFrame, itm:dict) -> pd.DataFrame:
f"^.*[.|-]{nic}.*{itm['framesize']}-{core}-{drv}{itm['test']}-{ttype}$"
df = df[
(df.job.str.endswith(f"{topo}-{arch}")) &
- (df.dut_version.str.contains(itm["dutver"].replace("_", "-"))) &
+ (df.dut_version.str.contains(itm["dutver"].replace(".r", "-r").\
+ replace("rls", "release"))) &
(df.test_id.str.contains(regex_test, regex=True))
]
@@ -151,8 +156,12 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
lat_traces = list()
y_lat_max = 0
x_lat = list()
+ show_latency = False
+ show_tput = False
for idx, itm in enumerate(sel):
itm_data = select_iterative_data(data, itm)
+ if itm_data.empty:
+ continue
if itm["testtype"] == "mrr":
y_data = itm_data[_VALUE[itm["testtype"]]].to_list()[0]
if y_data.size > 0:
@@ -178,8 +187,8 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
marker=dict(color=_get_color(idx))
)
tput_traces.append(go.Box(**tput_kwargs))
+ show_tput = True
- show_latency = False
if itm["testtype"] == "pdr":
y_lat = itm_data[_VALUE["pdr-lat"]].to_list()
if y_lat:
@@ -204,12 +213,13 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict) -> tuple:
else:
lat_traces.append(go.Box())
- 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))]
- if y_tput_max:
- pl_tput[u"yaxis"][u"range"] = [0, (int(y_tput_max / 1e6) + 1) * 1e6]
- fig_tput = go.Figure(data=tput_traces, layout=pl_tput)
+ 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))]
+ if y_tput_max:
+ pl_tput[u"yaxis"][u"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"])
diff --git a/resources/tools/dash/app/pal/report/layout.py b/resources/tools/dash/app/pal/report/layout.py
index ef98b7b376..7efd4b5972 100644
--- a/resources/tools/dash/app/pal/report/layout.py
+++ b/resources/tools/dash/app/pal/report/layout.py
@@ -29,8 +29,6 @@ from copy import deepcopy
from json import loads, JSONDecodeError
from ast import literal_eval
-from pprint import pformat
-
from ..data.data import Data
from ..data.url_processing import url_decode, url_encode
from .graphs import graph_iterative, table_comparison, get_short_version
@@ -102,10 +100,10 @@ class Layout:
self._data = pd.DataFrame()
for rls in releases:
data_mrr = Data(self._data_spec_file, True).\
- read_iterative_mrr(release=rls)
+ read_iterative_mrr(release=rls.replace("csit", "rls"))
data_mrr["release"] = rls
data_ndrpdr = Data(self._data_spec_file, True).\
- read_iterative_ndrpdr(release=rls)
+ read_iterative_ndrpdr(release=rls.replace("csit", "rls"))
data_ndrpdr["release"] = rls
self._data = pd.concat(
[self._data, data_mrr, data_ndrpdr], ignore_index=True)
@@ -415,7 +413,7 @@ class Layout:
[
dbc.InputGroupText(
children=self._show_tooltip(
- "help-release", "Release")
+ "help-release", "CSIT Release")
),
dbc.Select(
id="dd-ctrl-rls",
@@ -1003,7 +1001,7 @@ class Layout:
"cl-testtype-all-value": list(),
"cl-testtype-all-options": self.CL_ALL_DISABLED
})
- if trigger_id == "dd-ctrl-dut":
+ elif trigger_id == "dd-ctrl-dut":
try:
rls = ctrl_panel.get("dd-rls-value")
dut = self.spec_tbs[rls][dd_dut]
diff --git a/resources/tools/dash/app/pal/report/layout.yaml b/resources/tools/dash/app/pal/report/layout.yaml
index e6ee788a0f..689a91d291 100644
--- a/resources/tools/dash/app/pal/report/layout.yaml
+++ b/resources/tools/dash/app/pal/report/layout.yaml
@@ -1,6 +1,6 @@
plot-throughput:
xaxis:
- title: "<b>Test Cases [Index]</b>"
+ title: "Test Cases [Index]"
autorange: True
fixedrange: False
gridcolor: "rgb(230, 230, 230)"
@@ -13,7 +13,7 @@ plot-throughput:
tickmode: "array"
zeroline: False
yaxis:
- title: "<b>Packet Throughput [pps]</b>"
+ title: "Packet Throughput [pps]"
gridcolor: "rgb(230, 230, 230)"
hoverformat: ".3s"
tickformat: ".3s"
@@ -45,7 +45,7 @@ plot-throughput:
plot-latency:
xaxis:
- title: "<b>Test Cases [Index]</b>"
+ title: "Test Cases [Index]"
autorange: True
fixedrange: False
gridcolor: "rgb(230, 230, 230)"
@@ -58,7 +58,7 @@ plot-latency:
tickmode: "array"
zeroline: False
yaxis:
- title: "<b>Packet Latency [us]</b>"
+ title: "Average Latency at 50% PDR [us]"
gridcolor: "rgb(230, 230, 230)"
hoverformat: ".3s"
tickformat: ".3s"