From 2ff03f4555ad917f74259f971d6d25c7cfd1861c Mon Sep 17 00:00:00 2001 From: Tibor Frank Date: Tue, 7 Nov 2023 14:56:55 +0000 Subject: [PATCH] C-Dash: Add GSO to report Change-Id: Ie8c22c76557bf491abc53aedc1e7f605c37c88d3 Signed-off-by: Tibor Frank --- csit.infra.dash/app/cdash/coverage/tables.py | 55 ++++++++++++++++++++++++---- csit.infra.dash/app/cdash/data/data.yaml | 18 +++++++++ csit.infra.dash/app/cdash/utils/constants.py | 3 +- 3 files changed, 67 insertions(+), 9 deletions(-) diff --git a/csit.infra.dash/app/cdash/coverage/tables.py b/csit.infra.dash/app/cdash/coverage/tables.py index f2fa90ffb2..372a8206bf 100644 --- a/csit.infra.dash/app/cdash/coverage/tables.py +++ b/csit.infra.dash/app/cdash/coverage/tables.py @@ -14,6 +14,7 @@ """The coverage data tables. """ + import hdrh.histogram import hdrh.codec import pandas as pd @@ -54,7 +55,7 @@ def select_coverage_data( phy = selected["phy"].split("-") if len(phy) == 4: topo, arch, nic, drv = phy - drv = "" if drv == "dpdk" else drv.replace("_", "-") + drv_str = "" if drv == "dpdk" else drv.replace("_", "-") else: return l_data @@ -67,7 +68,7 @@ def select_coverage_data( df = df[ (df.job.str.endswith(f"{topo}-{arch}")) & (df.test_id.str.contains( - f"^.*\.{selected['area']}\..*{nic}.*{drv}.*$", + f"^.*\.{selected['area']}\..*{nic}.*{drv_str}.*$", regex=True )) ] @@ -115,7 +116,15 @@ def select_coverage_data( if ttype == "device": cov = cov.assign(Result="PASS") - else: + elif ttype == "mrr": + cov["Throughput_Unit"] = df["result_receive_rate_rate_unit"] + cov["Throughput_AVG"] = df.apply( + lambda row: row["result_receive_rate_rate_avg"] / 1e9, axis=1 + ) + cov["Throughput_STDEV"] = df.apply( + lambda row: row["result_receive_rate_rate_stdev"] / 1e9, axis=1 + ) + else: # NDRPDR cov["Throughput_Unit"] = df["result_pdr_lower_rate_unit"] cov["Throughput_NDR"] = df.apply( lambda row: row["result_ndr_lower_rate_value"] / 1e6, axis=1 @@ -152,7 +161,9 @@ def select_coverage_data( df_suite.rename( columns={ "Throughput_NDR": f"Throughput_NDR_M{unit}", - "Throughput_PDR": f"Throughput_PDR_M{unit}" + "Throughput_PDR": f"Throughput_PDR_M{unit}", + "Throughput_AVG": f"Throughput_G{unit}_AVG", + "Throughput_STDEV": f"Throughput_G{unit}_STDEV" }, inplace=True ) @@ -160,7 +171,7 @@ def select_coverage_data( l_data.append((suite, df_suite, )) - return l_data + return l_data, ttype def coverage_tables( @@ -181,9 +192,10 @@ def coverage_tables( """ accordion_items = list() - sel_data = select_coverage_data(data, selected, show_latency=show_latency) + sel_data, ttype = \ + select_coverage_data(data, selected, show_latency=show_latency) for suite, cov_data in sel_data: - if len(cov_data.columns) == 3: # VPP Device + if ttype == "device": # VPP Device cols = [ { "name": col, @@ -200,7 +212,34 @@ def coverage_tables( "textAlign": "right" } ] - else: # Performance + elif ttype == "mrr": # MRR + cols = list() + for idx, col in enumerate(cov_data.columns): + if idx == 0: + cols.append({ + "name": ["", "", col], + "id": col, + "deletable": False, + "selectable": False, + "type": "text" + }) + else: + cols.append({ + "name": col.split("_"), + "id": col, + "deletable": False, + "selectable": False, + "type": "numeric", + "format": Format(precision=2, scheme=Scheme.fixed) + }) + style_cell={"textAlign": "right"} + style_cell_conditional=[ + { + "if": {"column_id": "Test Name"}, + "textAlign": "left" + } + ] + else: # Performance NDRPDR cols = list() for idx, col in enumerate(cov_data.columns): if idx == 0: diff --git a/csit.infra.dash/app/cdash/data/data.yaml b/csit.infra.dash/app/cdash/data/data.yaml index cff25915e5..0f66197ec3 100644 --- a/csit.infra.dash/app/cdash/data/data.yaml +++ b/csit.infra.dash/app/cdash/data/data.yaml @@ -400,6 +400,24 @@ - result_latency_forward_pdr_90_hdrh - result_latency_forward_pdr_50_hdrh - result_latency_forward_pdr_10_hdrh +- data_type: coverage + partition: test_type + partition_name: mrr + release: rls2310 + path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/coverage_rls2310 + schema: iterative_rls2310_mrr + columns: + - job + - build + - dut_type + - dut_version + - start_time + - passed + - test_id + - version + - result_receive_rate_rate_avg + - result_receive_rate_rate_stdev + - result_receive_rate_rate_unit - data_type: coverage partition: test_type partition_name: device diff --git a/csit.infra.dash/app/cdash/utils/constants.py b/csit.infra.dash/app/cdash/utils/constants.py index 922634898e..5f5d40aea7 100644 --- a/csit.infra.dash/app/cdash/utils/constants.py +++ b/csit.infra.dash/app/cdash/utils/constants.py @@ -73,7 +73,7 @@ class Constants: # Maximal value of TIME_PERIOD for data read from the parquets in days. # Do not change without a good reason. - MAX_TIME_PERIOD = 130 + MAX_TIME_PERIOD = 180 # It defines the time period for data read from the parquets in days from # now back to the past. @@ -126,6 +126,7 @@ class Constants: "dpdk": "DPDK", "container_memif": "LXC/DRC Container Memif", "crypto": "IPSec IPv4 Routing", + "gso": "GSO", "ip4": "IPv4 Routing", "ip4_tunnels": "IPv4 Tunnels", "ip6": "IPv6 Routing", -- 2.16.6