u"plot_nf_heatmap": plot_nf_heatmap,
u"plot_hdrh_lat_by_percentile": plot_hdrh_lat_by_percentile,
u"plot_hdrh_lat_by_percentile_x_log": plot_hdrh_lat_by_percentile_x_log,
- u"plot_mrr_error_bars_name": plot_mrr_error_bars_name
+ u"plot_mrr_error_bars_name": plot_mrr_error_bars_name,
+ u"plot_mrr_box_name": plot_mrr_box_name
}
logging.info(u"Generating the plots ...")
return
+def plot_mrr_box_name(plot, input_data):
+ """Generate the plot(s) with algorithm: plot_mrr_box_name
+ specified in the specification file.
+
+ :param plot: Plot to generate.
+ :param input_data: Data to process.
+ :type plot: pandas.Series
+ :type input_data: InputData
+ """
+
+ # Transform the data
+ logging.info(
+ f" Creating data set for the {plot.get(u'type', u'')} "
+ f"{plot.get(u'title', u'')}."
+ )
+ data = input_data.filter_tests_by_name(
+ plot,
+ params=[u"result", u"parent", u"tags", u"type"])
+ if data is None:
+ logging.error(u"No data.")
+ return
+
+ # Prepare the data for the plot
+ data_x = list()
+ data_names = list()
+ data_y = list()
+ data_y_max = list()
+ idx = 1
+ for item in plot.get(u"include", tuple()):
+ reg_ex = re.compile(str(item).lower())
+ for job in data:
+ for build in job:
+ for test_id, test in build.iteritems():
+ if not re.match(reg_ex, str(test_id).lower()):
+ continue
+ try:
+ data_x.append(idx)
+ name = re.sub(REGEX_NIC, u'', test[u'parent'].lower().
+ replace(u'-mrr', u'').
+ replace(u'2n1l-', u''))
+ data_y.append(test[u"result"][u"samples"])
+ data_names.append(
+ f"{idx}."
+ f"({len(data_y[-1]):02d} "
+ f"run{u's' if len(data_y[-1]) > 1 else u''}) "
+ f"{name}"
+ )
+ data_y_max.append(max(test[u"result"][u"samples"]))
+ idx += 1
+ except (KeyError, TypeError):
+ pass
+
+ # Add plot traces
+ traces = list()
+ for idx in range(len(data_x)):
+ traces.append(
+ plgo.Box(
+ x=[data_x[idx], ] * len(data_y[idx]),
+ y=data_y[idx],
+ name=data_names[idx],
+ hoverinfo=u"y+name"
+ )
+ )
+
+ try:
+ # Create plot
+ layout = deepcopy(plot[u"layout"])
+ if layout.get(u"title", None):
+ layout[u"title"] = f"<b>Throughput:</b> {layout[u'title']}"
+ if data_y_max:
+ layout[u"yaxis"][u"range"] = [0, max(data_y_max) + 1]
+ plpl = plgo.Figure(data=traces, layout=layout)
+
+ # Export Plot
+ logging.info(f" Writing file {plot[u'output-file']}.html.")
+ ploff.plot(
+ plpl,
+ show_link=False,
+ auto_open=False,
+ filename=f"{plot[u'output-file']}.html"
+ )
+ except PlotlyError as err:
+ logging.error(
+ f" Finished with error: {repr(err)}".replace(u"\n", u" ")
+ )
+ return
+
+
def plot_mrr_error_bars_name(plot, input_data):
"""Generate the plot(s) with algorithm: plot_mrr_error_bars_name
specified in the specification file.
size: 14
zeroline: False
yaxis:
- title: "<b>Packet Throughput [Gbps]</b>"
+ title: "<b>Data Throughput [Gbps]</b>"
titlefont:
size: 14
gridcolor: "rgb(230, 230, 230)"
size: 14
zeroline: False
yaxis:
- title: "<b>Traffic Throughput [Gbps]</b>"
+ title: "<b>Data Throughput [Gbps]</b>"
titlefont:
size: 14
gridcolor: "rgb(230, 230, 230)"
- 35 # rls2101.rel NDRPDR cov env 6 3n-hsw-vhost-01
- 36 # rls2101.rel NDRPDR cov env 6 3n-hsw-vhost-02
-
csit-vpp-perf-report-iterative-2009-3n-skx:
- 17 # rls2005 MRR iter env 5
- 13 # rls2005 NDRPDR iter env 5
format:
html:
- full
-# pdf:
-# - minimal
+ pdf:
+ - minimal
################################################################################
### T A B L E S ###
- type: "plot"
title: "Throughput: 2n-skx-128kb-1t1c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-skx-128kb-1t1c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-skx"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-1t1c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-skx-128kb-1t1c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-skx-128kb-2t2c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-skx-128kb-2t2c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-skx"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-2t2c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-skx-128kb-2t2c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-skx-128kb-4t4c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-skx-128kb-4t4c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-skx"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-4t4c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-skx-128kb-4t4c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-clx-128kb-1t1c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-clx-128kb-1t1c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-clx"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-1t1c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-clx-128kb-1t1c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-clx-128kb-2t2c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-clx-128kb-2t2c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-clx"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-2t2c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-clx-128kb-2t2c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-clx-128kb-4t4c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-clx-128kb-4t4c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-clx"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-4t4c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-clx-128kb-4t4c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-zn2-128kb-1t1c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-zn2-128kb-1t1c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-zn2"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-1t1c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-zn2-128kb-1t1c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-zn2-128kb-2t2c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-zn2-128kb-2t2c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-zn2"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-2t2c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-zn2-128kb-2t2c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"
- type: "plot"
title: "Throughput: 2n-zn2-128kb-4t4c-ip4routing-iperf3"
- algorithm: "plot_mrr_error_bars_name"
+ algorithm: "plot_mrr_box_name"
output-file: "{DIR[STATIC,VPP]}/2n-zn2-128kb-4t4c-ip4routing-iperf3"
data: "plot-vpp-gso-2n-zn2"
include:
- "Tests.Vpp.Perf.Gso.2N1L-10Ge2P1X710-Ethip4-Ip4Base-2Vhost-Iperf3-Mrr.128KB-4t4c-ethip4-ip4base-2vhost-iperf3-mrr"
layout:
title: "2n-zn2-128kb-4t4c-ip4routing-iperf3"
- layout: "plot-scatter-error-bars-gbps"
+ layout: "plot-throughput-gbps"