aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2023-02-01 15:50:36 +0100
committerTibor Frank <tifrank@cisco.com>2023-02-03 09:20:24 +0100
commita214378b5d0589fcbd9a9cc8c9b25bce8a862cec (patch)
treebeb025afc4ca2133ef89126039dc25756d5298eb
parenta68514255a58ae6c982e40c47247abf64e58f3f4 (diff)
C-Dash: Add hoststack
Signed-off-by: Tibor Frank <tifrank@cisco.com> Change-Id: I5055bc785f5ba5c9b13ba83eaf646975cfe86ea4
-rw-r--r--csit.infra.dash/app/cdash/data/data.yaml86
-rw-r--r--csit.infra.dash/app/cdash/report/graphs.py16
-rw-r--r--csit.infra.dash/app/cdash/report/layout.py22
-rw-r--r--csit.infra.dash/app/cdash/report/layout.yaml2
-rw-r--r--csit.infra.dash/app/cdash/trending/graphs.py15
-rw-r--r--csit.infra.dash/app/cdash/trending/layout.py18
-rw-r--r--csit.infra.dash/app/cdash/trending/layout.yaml2
-rw-r--r--csit.infra.dash/app/cdash/utils/constants.py16
8 files changed, 153 insertions, 24 deletions
diff --git a/csit.infra.dash/app/cdash/data/data.yaml b/csit.infra.dash/app/cdash/data/data.yaml
index 846be6b628..9cc366e62f 100644
--- a/csit.infra.dash/app/cdash/data/data.yaml
+++ b/csit.infra.dash/app/cdash/data/data.yaml
@@ -69,6 +69,46 @@
- dut_type
- dut_version
- version
+- data_type: trending
+ partition: test_type
+ partition_name: hoststack
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/trending
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - hosts
+ - tg_type
+ # - tg_version
+ - result_bandwidth_unit
+ - result_bandwidth_value
+ - result_rate_unit
+ - result_rate_value
+ - result_latency_unit
+ - result_latency_value
+ # - result_failed_requests_unit
+ # - result_failed_requests_value
+ # - result_completed_requests_unit
+ # - result_completed_requests_value
+ # - result_retransmits_unit
+ # - result_retransmits_value
+ # - result_duration_unit
+ # - result_duration_value
+ # - result_type
+ - start_time
+ - passed
+ - telemetry
+ - test_id
+ - test_type
+ - version
+ categories:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - tg_type
+ - version
- data_type: iterative
partition: test_type
partition_name: mrr
@@ -225,3 +265,49 @@
- dut_type
- dut_version
- version
+- data_type: iterative
+ partition: test_type
+ partition_name: hoststack
+ release: rls2302
+ path: s3://fdio-docs-s3-cloudfront-index/csit/parquet/iterative_rls2302
+ columns:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - hosts
+ - tg_type
+ # - tg_version
+ - result_bandwidth_unit
+ - result_bandwidth_value
+ - result_rate_unit
+ - result_rate_value
+ - result_latency_unit
+ - result_latency_value
+ # - result_failed_requests_unit
+ # - result_failed_requests_value
+ # - result_completed_requests_unit
+ # - result_completed_requests_value
+ # - result_retransmits_unit
+ # - result_retransmits_value
+ # - result_duration_unit
+ # - result_duration_value
+ - start_time
+ - passed
+ - telemetry
+ - test_id
+ - test_type
+ - version
+ categories:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - version
+ categories:
+ - job
+ - build
+ - dut_type
+ - dut_version
+ - tg_type
+ - version
diff --git a/csit.infra.dash/app/cdash/report/graphs.py b/csit.infra.dash/app/cdash/report/graphs.py
index 5af962158e..411a599b1c 100644
--- a/csit.infra.dash/app/cdash/report/graphs.py
+++ b/csit.infra.dash/app/cdash/report/graphs.py
@@ -11,10 +11,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-"""
+"""Implementation of graphs for iterative data.
"""
-import re
import plotly.graph_objects as go
import pandas as pd
@@ -47,13 +46,20 @@ def select_iterative_data(data: pd.DataFrame, itm:dict) -> pd.DataFrame:
else:
return None
- core = str() if itm["dut"] == "trex" else f"{itm['core']}"
- ttype = "ndrpdr" if itm["testtype"] in ("ndr", "pdr") else itm["testtype"]
+ if itm["testtype"] in ("ndr", "pdr"):
+ test_type = "ndrpdr"
+ elif itm["testtype"] == "mrr":
+ test_type = "mrr"
+ elif itm["area"] == "hoststack":
+ test_type = "hoststack"
df = data.loc[(
(data["release"] == itm["rls"]) &
- (data["test_type"] == ttype) &
+ (data["test_type"] == test_type) &
(data["passed"] == True)
)]
+
+ core = str() if itm["dut"] == "trex" else f"{itm['core']}"
+ ttype = "ndrpdr" if itm["testtype"] in ("ndr", "pdr") else itm["testtype"]
regex_test = \
f"^.*[.|-]{nic}.*{itm['framesize']}-{core}-{drv}{itm['test']}-{ttype}$"
df = df[
diff --git a/csit.infra.dash/app/cdash/report/layout.py b/csit.infra.dash/app/cdash/report/layout.py
index 495de36dec..cae6993ec2 100644
--- a/csit.infra.dash/app/cdash/report/layout.py
+++ b/csit.infra.dash/app/cdash/report/layout.py
@@ -112,10 +112,11 @@ class Layout:
# Get structure of tests:
tbs = dict()
- cols = ["job", "test_id", "test_type", "dut_version", "release"]
+ cols = [
+ "job", "test_id", "test_type", "dut_version", "tg_type", "release"
+ ]
for _, row in self._data[cols].drop_duplicates().iterrows():
rls = row["release"]
- ttype = row["test_type"]
lst_job = row["job"].split("-")
dut = lst_job[1]
d_ver = row["dut_version"]
@@ -167,18 +168,31 @@ class Layout:
tbs[rls][dut][d_ver][infra][area][test]["frame-size"].append(
framesize.upper()
)
- if ttype == "mrr":
+ if row["test_type"] == "mrr":
if "MRR" not in \
tbs[rls][dut][d_ver][infra][area][test]["test-type"]:
tbs[rls][dut][d_ver][infra][area][test]["test-type"].append(
"MRR"
)
- elif ttype == "ndrpdr":
+ elif row["test_type"] == "ndrpdr":
if "NDR" not in \
tbs[rls][dut][d_ver][infra][area][test]["test-type"]:
tbs[rls][dut][d_ver][infra][area][test]["test-type"].extend(
("NDR", "PDR", )
)
+ elif row["test_type"] == "hoststack" and \
+ row["tg_type"] in ("iperf", "vpp"):
+ if "BPS" not in \
+ tbs[rls][dut][d_ver][infra][area][test]["test-type"]:
+ tbs[rls][dut][d_ver][infra][area][test]["test-type"].append(
+ "BPS"
+ )
+ elif row["test_type"] == "hoststack" and row["tg_type"] == "ab":
+ if "CPS" not in \
+ tbs[rls][dut][d_ver][infra][area][test]["test-type"]:
+ tbs[rls][dut][d_ver][infra][area][test]["test-type"].extend(
+ ("CPS", "RPS")
+ )
self._spec_tbs = tbs
# Read from files:
diff --git a/csit.infra.dash/app/cdash/report/layout.yaml b/csit.infra.dash/app/cdash/report/layout.yaml
index 4f9f7ac2a7..636b901474 100644
--- a/csit.infra.dash/app/cdash/report/layout.yaml
+++ b/csit.infra.dash/app/cdash/report/layout.yaml
@@ -13,7 +13,7 @@ plot-throughput:
tickmode: "array"
zeroline: False
yaxis:
- title: "Packet Throughput [pps]"
+ title: "Throughput [pps|cps|rps|bps]"
gridcolor: "rgb(230, 230, 230)"
hoverformat: ".3s"
tickformat: ".3s"
diff --git a/csit.infra.dash/app/cdash/trending/graphs.py b/csit.infra.dash/app/cdash/trending/graphs.py
index 79e2697f54..b6581e67f4 100644
--- a/csit.infra.dash/app/cdash/trending/graphs.py
+++ b/csit.infra.dash/app/cdash/trending/graphs.py
@@ -11,7 +11,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-"""
+"""Implementation of graphs for trending data.
"""
import plotly.graph_objects as go
@@ -68,14 +68,19 @@ def select_trending_data(data: pd.DataFrame, itm: dict) -> pd.DataFrame:
else:
return None
- core = str() if itm["dut"] == "trex" else f"{itm['core']}"
- ttype = "ndrpdr" if itm["testtype"] in ("ndr", "pdr") else itm["testtype"]
-
+ if itm["testtype"] in ("ndr", "pdr"):
+ test_type = "ndrpdr"
+ elif itm["testtype"] == "mrr":
+ test_type = "mrr"
+ elif itm["area"] == "hoststack":
+ test_type = "hoststack"
df = data.loc[(
- (data["test_type"] == ttype) &
+ (data["test_type"] == test_type) &
(data["passed"] == True)
)]
df = df[df.job.str.endswith(f"{topo}-{arch}")]
+ core = str() if itm["dut"] == "trex" else f"{itm['core']}"
+ ttype = "ndrpdr" if itm["testtype"] in ("ndr", "pdr") else itm["testtype"]
df = df[df.test_id.str.contains(
f"^.*[.|-]{nic}.*{itm['framesize']}-{core}-{drv}{itm['test']}-{ttype}$",
regex=True
diff --git a/csit.infra.dash/app/cdash/trending/layout.py b/csit.infra.dash/app/cdash/trending/layout.py
index 2d65567489..2a91bf4755 100644
--- a/csit.infra.dash/app/cdash/trending/layout.py
+++ b/csit.infra.dash/app/cdash/trending/layout.py
@@ -111,11 +111,10 @@ class Layout:
# Get structure of tests:
tbs = dict()
- for _, row in self._data[["job", "test_id"]].drop_duplicates().\
- iterrows():
+ cols = ["job", "test_id", "test_type", "tg_type"]
+ for _, row in self._data[cols].drop_duplicates().iterrows():
lst_job = row["job"].split("-")
dut = lst_job[1]
- ttype = lst_job[3]
tbed = "-".join(lst_job[-2:])
lst_test = row["test_id"].split(".")
if dut == "dpdk":
@@ -160,14 +159,23 @@ class Layout:
tbs[dut][infra][area][test]["frame-size"].append(
framesize.upper()
)
- if ttype == "mrr":
+ if row["test_type"] == "mrr":
if "MRR" not in tbs[dut][infra][area][test]["test-type"]:
tbs[dut][infra][area][test]["test-type"].append("MRR")
- elif ttype == "ndrpdr":
+ elif row["test_type"] == "ndrpdr":
if "NDR" not in tbs[dut][infra][area][test]["test-type"]:
tbs[dut][infra][area][test]["test-type"].extend(
("NDR", "PDR")
)
+ elif row["test_type"] == "hoststack":
+ if row["tg_type"] in ("iperf", "vpp"):
+ if "BPS" not in tbs[dut][infra][area][test]["test-type"]:
+ tbs[dut][infra][area][test]["test-type"].append("BPS")
+ elif row["tg_type"] == "ab":
+ if "CPS" not in tbs[dut][infra][area][test]["test-type"]:
+ tbs[dut][infra][area][test]["test-type"].extend(
+ ("CPS", "RPS")
+ )
self._spec_tbs = tbs
# Read from files:
diff --git a/csit.infra.dash/app/cdash/trending/layout.yaml b/csit.infra.dash/app/cdash/trending/layout.yaml
index bc11dde61f..5e41b03118 100644
--- a/csit.infra.dash/app/cdash/trending/layout.yaml
+++ b/csit.infra.dash/app/cdash/trending/layout.yaml
@@ -4,7 +4,7 @@ plot-trending-tput:
yaxis:
showticklabels: True
tickformat: ".3s"
- title: "Throughput [pps]"
+ title: "Throughput [pps|cps|rps|bps]"
hoverformat: ".5s"
gridcolor: "rgb(238, 238, 238)"
linecolor: "rgb(238, 238, 238)"
diff --git a/csit.infra.dash/app/cdash/utils/constants.py b/csit.infra.dash/app/cdash/utils/constants.py
index cca68a56b8..4eb52d2117 100644
--- a/csit.infra.dash/app/cdash/utils/constants.py
+++ b/csit.infra.dash/app/cdash/utils/constants.py
@@ -127,6 +127,7 @@ class Constants:
"nfv_density-vm_vhost-chain": "VNF Service Chains Routing",
"nfv_density-dcr_memif-pipeline": "CNF Service Pipelines Routing",
"nfv_density-dcr_memif-chain": "CNF Service Chains Routing",
+ "hoststack": "Hoststack"
}
# URL style.
@@ -201,21 +202,30 @@ class Constants:
"mrr": "result_receive_rate_rate_avg",
"ndr": "result_ndr_lower_rate_value",
"pdr": "result_pdr_lower_rate_value",
- "pdr-lat": "result_latency_forward_pdr_50_avg"
+ "pdr-lat": "result_latency_forward_pdr_50_avg",
+ "cps": "result_bandwidth_value",
+ "rps": "result_bandwidth_value",
+ "bps": "result_bandwidth_value"
}
VALUE_ITER = {
"mrr": "result_receive_rate_rate_values",
"ndr": "result_ndr_lower_rate_value",
"pdr": "result_pdr_lower_rate_value",
- "pdr-lat": "result_latency_forward_pdr_50_avg"
+ "pdr-lat": "result_latency_forward_pdr_50_avg",
+ "cps": "result_bandwidth_value",
+ "rps": "result_bandwidth_value",
+ "bps": "result_bandwidth_value"
}
UNIT = {
"mrr": "result_receive_rate_rate_unit",
"ndr": "result_ndr_lower_rate_unit",
"pdr": "result_pdr_lower_rate_unit",
- "pdr-lat": "result_latency_forward_pdr_50_unit"
+ "pdr-lat": "result_latency_forward_pdr_50_unit",
+ "cps": "result_bandwidth_unit",
+ "rps": "result_bandwidth_unit",
+ "bps": "result_bandwidth_unit"
}
# Latencies.