From 51da461dcdb1ed20abe73b616ceb971569c9b884 Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Fri, 10 Jun 2022 13:13:08 +0200 Subject: [PATCH] feat(uti): statistical graphs Change-Id: Ic05d56dae08e9745582e02e59e8b76145050ca73 Signed-off-by: Tibor Frank --- resources/tools/dash/app/pal/__init__.py | 2 +- resources/tools/dash/app/pal/report/graphs.py | 32 ++++++++++++++++--------- resources/tools/dash/app/pal/report/layout.py | 10 ++++---- resources/tools/dash/app/pal/report/layout.yaml | 8 +++---- 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: "Test Cases [Index]" + 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: "Packet Throughput [pps]" + title: "Packet Throughput [pps]" gridcolor: "rgb(230, 230, 230)" hoverformat: ".3s" tickformat: ".3s" @@ -45,7 +45,7 @@ plot-throughput: plot-latency: xaxis: - title: "Test Cases [Index]" + 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: "Packet Latency [us]" + title: "Average Latency at 50% PDR [us]" gridcolor: "rgb(230, 230, 230)" hoverformat: ".3s" tickformat: ".3s" -- 2.16.6