aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/presentation/generator_cpta.py
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2019-12-16 10:49:24 +0100
committerTibor Frank <tifrank@cisco.com>2019-12-17 06:37:18 +0000
commit89197627ca8b43be87dde1d124f7b656ee4523ac (patch)
tree3e72134980ffb42149cdf24ce39f4e6e41f26f32 /resources/tools/presentation/generator_cpta.py
parent1056299071d3fc6f959dd04401f2492f31293e9a (diff)
CTPA: Improve handling pps vs Mpps
+ Jumpavg assumes precision is around 1, so gives wrong classifications when fed Mpps numbers, and the classification has to be done on pps values. + Hover should display Mpps values properly, e.g. as floats. + Decided to show 3 digits after decimal point. + Better distinguishing between keys and indices. Change-Id: I99bdad5b401839889463c7cf6f8b0930ec65b457 Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/tools/presentation/generator_cpta.py')
-rw-r--r--resources/tools/presentation/generator_cpta.py47
1 files changed, 25 insertions, 22 deletions
diff --git a/resources/tools/presentation/generator_cpta.py b/resources/tools/presentation/generator_cpta.py
index 29eed8cf75..a11d1da25f 100644
--- a/resources/tools/presentation/generator_cpta.py
+++ b/resources/tools/presentation/generator_cpta.py
@@ -169,44 +169,47 @@ def _generate_trending_traces(in_data, job_name, build_info,
"""
data_x = list(in_data.keys())
- data_y = [float(item) / 1e6 for item in in_data.values()]
+ data_y_pps = list(in_data.values())
+ data_y_mpps = [float(item) / 1e6 for item in data_y_pps]
hover_text = list()
xaxis = list()
- for idx in data_x:
- date = build_info[job_name][str(idx)][0]
+ for index, key in enumerate(data_x):
+ str_key = str(key)
+ date = build_info[job_name][str_key][0]
hover_str = (u"date: {date}<br>"
- u"value: {value:,}<br>"
+ u"value [Mpps]: {value:.3f}<br>"
u"{sut}-ref: {build}<br>"
u"csit-ref: mrr-{period}-build-{build_nr}<br>"
u"testbed: {testbed}")
if u"dpdk" in job_name:
hover_text.append(hover_str.format(
date=date,
- value=int(in_data[idx]),
+ value=data_y_mpps[index],
sut=u"dpdk",
- build=build_info[job_name][str(idx)][1].rsplit(u'~', 1)[0],
+ build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0],
period=u"weekly",
- build_nr=idx,
- testbed=build_info[job_name][str(idx)][2]))
+ build_nr=str_key,
+ testbed=build_info[job_name][str_key][2]))
elif u"vpp" in job_name:
hover_text.append(hover_str.format(
date=date,
- value=int(in_data[idx]),
+ value=data_y_mpps[index],
sut=u"vpp",
- build=build_info[job_name][str(idx)][1].rsplit(u'~', 1)[0],
+ build=build_info[job_name][str_key][1].rsplit(u'~', 1)[0],
period=u"daily",
- build_nr=idx,
- testbed=build_info[job_name][str(idx)][2]))
+ build_nr=str_key,
+ testbed=build_info[job_name][str_key][2]))
xaxis.append(datetime(int(date[0:4]), int(date[4:6]), int(date[6:8]),
int(date[9:11]), int(date[12:])))
data_pd = OrderedDict()
- for key, value in zip(xaxis, data_y):
+ for key, value in zip(xaxis, data_y_pps):
data_pd[key] = value
- anomaly_classification, avgs = classify_anomalies(data_pd)
+ anomaly_classification, avgs_pps = classify_anomalies(data_pd)
+ avgs_mpps = [avg_pps / 1e6 for avg_pps in avgs_pps]
anomalies = OrderedDict()
anomalies_colors = list()
@@ -217,20 +220,20 @@ def _generate_trending_traces(in_data, job_name, build_info,
u"progression": 1.0
}
if anomaly_classification:
- for idx, (key, value) in enumerate(data_pd.items()):
- if anomaly_classification[idx] in \
+ for index, (key, value) in enumerate(data_pd.items()):
+ if anomaly_classification[index] in \
(u"outlier", u"regression", u"progression"):
- anomalies[key] = value
+ anomalies[key] = value / 1e6
anomalies_colors.append(
- anomaly_color[anomaly_classification[idx]])
- anomalies_avgs.append(avgs[idx])
+ anomaly_color[anomaly_classification[index]])
+ anomalies_avgs.append(avgs_mpps[index])
anomalies_colors.extend([0.0, 0.5, 1.0])
# Create traces
trace_samples = plgo.Scatter(
x=xaxis,
- y=data_y,
+ y=data_y_mpps,
mode=u"markers",
line={
u"width": 1
@@ -251,7 +254,7 @@ def _generate_trending_traces(in_data, job_name, build_info,
if show_trend_line:
trace_trend = plgo.Scatter(
x=xaxis,
- y=avgs,
+ y=avgs_mpps,
mode=u"lines",
line={
u"shape": u"linear",
@@ -261,7 +264,7 @@ def _generate_trending_traces(in_data, job_name, build_info,
showlegend=False,
legendgroup=name,
name=f"{name}",
- text=[f"trend: {int(avg):,}" for avg in avgs],
+ text=[f"trend [Mpps]: {avg:.3f}" for avg in avgs_mpps],
hoverinfo=u"text+name"
)
traces.append(trace_trend)