feat(uti): statistical graphs 20/36420/3
authorTibor Frank <tifrank@cisco.com>
Fri, 10 Jun 2022 11:13:08 +0000 (13:13 +0200)
committerTibor Frank <tifrank@cisco.com>
Fri, 10 Jun 2022 11:18:54 +0000 (11:18 +0000)
Change-Id: Ic05d56dae08e9745582e02e59e8b76145050ca73
Signed-off-by: Tibor Frank <tifrank@cisco.com>
resources/tools/dash/app/pal/__init__.py
resources/tools/dash/app/pal/report/graphs.py
resources/tools/dash/app/pal/report/layout.py
resources/tools/dash/app/pal/report/layout.yaml

index cb12b7d..c55ac96 100644 (file)
@@ -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.
index 42ae079..634e539 100644 (file)
@@ -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"])
index ef98b7b..7efd4b5 100644 (file)
@@ -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]
index e6ee788..689a91d 100644 (file)
@@ -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"