CSIT-1041: Trending dashboard 27/12127/1
authorTibor Frank <tifrank@cisco.com>
Wed, 25 Apr 2018 15:21:50 +0000 (17:21 +0200)
committerTibor Frank <tifrank@cisco.com>
Wed, 25 Apr 2018 15:21:50 +0000 (17:21 +0200)
Change-Id: Ib1307d542ddef1fb6c4ddc0f6204c549870a3c25
Signed-off-by: Tibor Frank <tifrank@cisco.com>
docs/cpta/introduction/index.rst
resources/tools/presentation/generator_CPTA.py
resources/tools/presentation/generator_tables.py

index af411c5..df47dc5 100644 (file)
@@ -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.
index c2f8890..51787e4 100644 (file)
@@ -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
index c2007a1..0c18942 100644 (file)
@@ -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])