aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2018-04-25 17:21:50 +0200
committerTibor Frank <tifrank@cisco.com>2018-04-25 15:23:50 +0000
commitae18f375abfd38d47327d6f18eb5d67140bbae42 (patch)
tree937443d50c0760772e51d474b0da3b40edbc787d
parent431981024fe300bae7ab5f48cc9f4ceea2b73a1c (diff)
CSIT-1041: Trending dashboard
Change-Id: Ib1307d542ddef1fb6c4ddc0f6204c549870a3c25 Signed-off-by: Tibor Frank <tifrank@cisco.com> (cherry picked from commit 0f662ea0defa9b30fa7a7d9256857fce92d20a6e)
-rw-r--r--docs/cpta/introduction/index.rst6
-rw-r--r--resources/tools/presentation/generator_CPTA.py2
-rw-r--r--resources/tools/presentation/generator_tables.py39
3 files changed, 31 insertions, 16 deletions
diff --git a/docs/cpta/introduction/index.rst b/docs/cpta/introduction/index.rst
index af411c5632..df47dc5cd9 100644
--- a/docs/cpta/introduction/index.rst
+++ b/docs/cpta/introduction/index.rst
@@ -16,8 +16,10 @@ Legend to table:
- **Test Case** : name of CSIT test case, naming convention in
`CSIT wiki <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.
- **Trend [Mpps]** : last value of trend.
- - **Short-Term Change [%]** : Relative change of last trend value vs. last week trend value.
- - **Long-Term Change [%]** : Relative change of last trend value vs. maximum of trend values over the last quarter except last week.
+ - **Short-Term Change [%]** : Relative change of last trend value vs. last
+ week trend value.
+ - **Long-Term Change [%]** : Relative change of last trend value vs. maximum
+ of trend values over the last quarter except last week.
- **Regressions [#]** : Number of regressions detected.
- **Progressions [#]** : Number of progressions detected.
- **Outliers [#]** : Number of outliers detected.
diff --git a/resources/tools/presentation/generator_CPTA.py b/resources/tools/presentation/generator_CPTA.py
index c2f8890286..51787e43c5 100644
--- a/resources/tools/presentation/generator_CPTA.py
+++ b/resources/tools/presentation/generator_CPTA.py
@@ -165,7 +165,7 @@ def _evaluate_results(in_data, trimmed_data, window=10):
if len(in_data) > 2:
win_size = in_data.size if in_data.size < window else window
results = [0.66, ]
- median = in_data.rolling(window=win_size, min_periods=2).median()
+ median = trimmed_data.rolling(window=win_size, min_periods=2).median()
stdev_t = trimmed_data.rolling(window=win_size, min_periods=2).std()
first = True
diff --git a/resources/tools/presentation/generator_tables.py b/resources/tools/presentation/generator_tables.py
index c2007a1a49..0c189426c6 100644
--- a/resources/tools/presentation/generator_tables.py
+++ b/resources/tools/presentation/generator_tables.py
@@ -722,7 +722,8 @@ def table_performance_trending_dashboard(table, input_data):
pd_data = pd.Series(tbl_dict[tst_name]["data"])
last_key = pd_data.keys()[-1]
win_size = min(pd_data.size, table["window"])
- key_14 = pd_data.keys()[-(pd_data.size - win_size)]
+ win_first_idx = pd_data.size - win_size
+ key_14 = pd_data.keys()[-win_first_idx]
long_win_size = min(pd_data.size, table["long-trend-window"])
data_t, _ = split_outliers(pd_data, outlier_const=1.5,
@@ -730,9 +731,9 @@ def table_performance_trending_dashboard(table, input_data):
median_t = data_t.rolling(window=win_size, min_periods=2).median()
stdev_t = data_t.rolling(window=win_size, min_periods=2).std()
- median_idx = pd_data.size - long_win_size
+ median_first_idx = pd_data.size - long_win_size
try:
- max_median = max([x for x in median_t.values[median_idx:]
+ max_median = max([x for x in median_t.values[median_first_idx:]
if not isnan(x)])
except ValueError:
max_median = nan
@@ -748,6 +749,14 @@ def table_performance_trending_dashboard(table, input_data):
# Test name:
name = tbl_dict[tst_name]["name"]
+ logging.info("{}".format(name))
+ logging.info("pd_data : {}".format(pd_data))
+ logging.info("data_t : {}".format(data_t))
+ logging.info("median_t : {}".format(median_t))
+ logging.info("last_median_t : {}".format(last_median_t))
+ logging.info("median_t_14 : {}".format(median_t_14))
+ logging.info("max_median : {}".format(max_median))
+
# Classification list:
classification_lst = list()
for build_nr, value in pd_data.iteritems():
@@ -764,26 +773,30 @@ def table_performance_trending_dashboard(table, input_data):
else:
classification_lst.append("normal")
- if isnan(last_median_t) or isnan(median_t_14) or median_t_14 == 0:
+ if isnan(last_median_t) or isnan(median_t_14) or median_t_14 == 0.0:
rel_change_last = nan
else:
rel_change_last = round(
(last_median_t - median_t_14) / median_t_14, 2)
- if isnan(max_median) or isnan(last_median_t) or max_median == 0:
+ if isnan(max_median) or isnan(last_median_t) or max_median == 0.0:
rel_change_long = nan
else:
rel_change_long = round(
(last_median_t - max_median) / max_median, 2)
- tbl_lst.append([name,
- '-' if isnan(last_median_t) else
- round(last_median_t / 1000000, 2),
- '-' if isnan(rel_change_last) else rel_change_last,
- '-' if isnan(rel_change_long) else rel_change_long,
- classification_lst[win_size:].count("regression"),
- classification_lst[win_size:].count("progression"),
- classification_lst[win_size:].count("outlier")])
+ logging.info("rel_change_last : {}".format(rel_change_last))
+ logging.info("rel_change_long : {}".format(rel_change_long))
+
+ tbl_lst.append(
+ [name,
+ '-' if isnan(last_median_t) else
+ round(last_median_t / 1000000, 2),
+ '-' if isnan(rel_change_last) else rel_change_last,
+ '-' if isnan(rel_change_long) else rel_change_long,
+ classification_lst[win_first_idx:].count("regression"),
+ classification_lst[win_first_idx:].count("progression"),
+ classification_lst[win_first_idx:].count("outlier")])
tbl_lst.sort(key=lambda rel: rel[0])