This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/master by this push:
     new ca6b0d7  Fix suite build time page
ca6b0d7 is described below

commit ca6b0d72b7ce766414d19a7287415f67f3ce822d
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Wed Jul 24 22:14:22 2019 +0300

    Fix suite build time page
---
 .../src/main/webapp/buildtime.html                 | 26 ++++++++---------
 .../tcbot/engine/buildtime/BuildTimeService.java   |  5 ++--
 .../tcignited/buildtime/BuildTimeResult.java       | 33 ++++++++++++++--------
 3 files changed, 37 insertions(+), 27 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/webapp/buildtime.html 
b/ignite-tc-helper-web/src/main/webapp/buildtime.html
index 4b077ac..c28817a 100644
--- a/ignite-tc-helper-web/src/main/webapp/buildtime.html
+++ b/ignite-tc-helper-web/src/main/webapp/buildtime.html
@@ -11,7 +11,6 @@
     <!-- production version, optimized for size and speed -->
     <!--<script src="https://cdn.jsdelivr.net/npm/vue";></script>-->
 
-    <script 
src="https://cdn.jsdelivr.net/npm/vuetify/dist/vuetify.js";></script>
     <link 
href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons"
 rel="stylesheet">
 
     <link href="https://cdn.jsdelivr.net/npm/vuetify/dist/vuetify.min.css"; 
rel="stylesheet">
@@ -19,6 +18,8 @@
     <link rel="stylesheet" 
href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css";>
     <link rel="stylesheet" href="css/style-1.5.css">
 
+    <script 
src="https://cdn.jsdelivr.net/npm/vuetify/dist/vuetify.js";></script>
+
     <script src="js/common-1.6.js"></script>
     <script>
 $(document).ready(function() {
@@ -31,20 +32,17 @@ $(document).ready(function() {
 function loadAnalytics() {
     let app = new Vue({
         el: '#app',
-        data () {
-            return {
-                headers: [
-                    { text: 'Build Type', value: 'buildType' },
-                    { text: 'Average Duration', value: 'averageDuration' },
-                    { text: 'Duration', value: 'totalDuration' }
-                ],
-                byBuildType: [
-                ],
-                timedOutByBuildType: [
-                ]
-            }
+        vuetify: new Vuetify(),
+        data: {
+            headers: [
+                {text: 'Build Type', value: 'buildType'},
+                {text: 'Average Duration', value: 'averageDuration'},
+                {text: 'Duration', value: 'totalDuration'}
+            ],
+            byBuildType: [],
+            timedOutByBuildType: []
         },
-        created () {
+        created() {
             this.initialize()
         },
 
diff --git 
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/buildtime/BuildTimeService.java
 
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/buildtime/BuildTimeService.java
index 09dfaa9..3f71c4c 100644
--- 
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/buildtime/BuildTimeService.java
+++ 
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/buildtime/BuildTimeService.java
@@ -78,13 +78,14 @@ public class BuildTimeService {
 
         long minDuration = Duration.ofMinutes(90).toMillis();
         long minDurationTimeout = Duration.ofMinutes(60).toMillis();
+        long totalDurationMs = Duration.ofHours(4).toMillis();
         int cntToInclude = 50;
         BuildTimeResult res = lastRes1d;
 
-        res.topByBuildTypes(availableServers, minDuration, cntToInclude)
+        res.topByBuildTypes(availableServers, minDuration, cntToInclude, 
totalDurationMs)
                 .stream().map(this::convertToUi).forEach(e -> 
resultUi.byBuildType.add(e));
 
-        res.topTimeoutsByBuildTypes(availableServers, minDurationTimeout, 
cntToInclude)
+        res.topTimeoutsByBuildTypes(availableServers, minDurationTimeout, 
cntToInclude, totalDurationMs)
                 .stream().map(this::convertToUi).forEach(e -> 
resultUi.timedOutByBuildType.add(e));
 
         return resultUi;
diff --git 
a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/buildtime/BuildTimeResult.java
 
b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/buildtime/BuildTimeResult.java
index 0721fd9..fcf6675 100644
--- 
a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/buildtime/BuildTimeResult.java
+++ 
b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/buildtime/BuildTimeResult.java
@@ -16,7 +16,11 @@
  */
 package org.apache.ignite.tcignited.buildtime;
 
-import java.util.*;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -48,34 +52,41 @@ public class BuildTimeResult {
 
 
     public List<Map.Entry<Long, BuildTimeRecord>> topByBuildTypes(Set<Integer> 
availableServers,
-                                                                  long 
minAvgDurationMs,
-                                                                  int maxCnt) {
-        return filtered(btByBuildType, availableServers, minAvgDurationMs)
+        long minAvgDurationMs,
+        int maxCnt,
+        long totalDurationMs) {
+        return filtered(btByBuildType, availableServers, minAvgDurationMs, 
totalDurationMs)
                 .sorted(Comparator.comparing(
-                        (Function<Map.Entry<Long, BuildTimeRecord>, Long>) 
entry -> entry.getValue().avgDuration())
+                        (Function<Map.Entry<Long, BuildTimeRecord>, Long>) 
entry -> entry.getValue().totalDuration())
                         .reversed())
                 .limit(maxCnt)
                 .collect(Collectors.toList());
     }
 
     public List<Map.Entry<Long, BuildTimeRecord>> 
topTimeoutsByBuildTypes(Set<Integer> availableServers,
-                                                                  long 
minAvgDurationMs,
-                                                                  int maxCnt) {
-        return filtered(timedOutByBuildType, availableServers, 
minAvgDurationMs)
+        long minAvgDurationMs,
+        int maxCnt,
+        long totalDurationMs) {
+        return filtered(timedOutByBuildType, availableServers, 
minAvgDurationMs, totalDurationMs)
                 .sorted(Comparator.comparing(
-                        (Function<Map.Entry<Long, BuildTimeRecord>, Long>) 
entry -> entry.getValue().avgDuration())
+                        (Function<Map.Entry<Long, BuildTimeRecord>, Long>) 
entry -> entry.getValue().totalDuration())
                         .reversed())
                 .limit(maxCnt)
                 .collect(Collectors.toList());
     }
 
-    private Stream<Map.Entry<Long, BuildTimeRecord>> filtered(Map<Long, 
BuildTimeRecord> map, Set<Integer> availableServers, long minAvgDurationMs) {
+    private Stream<Map.Entry<Long, BuildTimeRecord>> filtered(
+        Map<Long, BuildTimeRecord> map,
+        Set<Integer> availableServers,
+        long minAvgDurationMs,
+        long totalDurationMs) {
         return map.entrySet().stream()
                 .filter(e -> {
                     Long key = e.getKey();
                     int srvId = cacheKeyToSrvId(key);
                     return availableServers.contains(srvId);
                 })
-                .filter(e -> e.getValue().avgDuration() > minAvgDurationMs);
+            .filter(e -> e.getValue().avgDuration() > minAvgDurationMs)
+            .filter(e -> e.getValue().totalDuration() > totalDurationMs);
     }
 }

Reply via email to