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

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-pack.git

commit c9a2d54512cbc4c99a303d0d9e27fac61de21bb7
Author: Lei Zhang <[email protected]>
AuthorDate: Fri Aug 9 11:11:44 2019 +0800

    SCB-1411 Number Abbreviation
---
 .../ElasticsearchTransactionRepository.java        | 50 +++++++++++++---------
 .../main/resources/static/js/alpha-dashboard.js    |  8 +++-
 2 files changed, 37 insertions(+), 21 deletions(-)

diff --git 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
index 8a5b644..fe8f49a 100644
--- 
a/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
+++ 
b/alpha/alpha-fsm/src/main/java/org/apache/servicecomb/pack/alpha/fsm/repository/elasticsearch/ElasticsearchTransactionRepository.java
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -30,6 +31,7 @@ import 
org.apache.servicecomb.pack.alpha.core.fsm.repository.model.GlobalTransac
 import 
org.apache.servicecomb.pack.alpha.core.fsm.repository.model.PagingGlobalTransactions;
 import org.apache.servicecomb.pack.alpha.fsm.metrics.MetricsService;
 import org.apache.servicecomb.pack.alpha.fsm.repository.TransactionRepository;
+import org.elasticsearch.action.admin.indices.stats.IndicesStatsResponse;
 import org.elasticsearch.action.search.SearchResponse;
 import org.elasticsearch.action.search.SearchType;
 import org.elasticsearch.index.query.QueryBuilder;
@@ -156,14 +158,19 @@ public class ElasticsearchTransactionRepository 
implements TransactionRepository
     TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders
         .terms("count_group_by_state").field("state.keyword");
     SearchQuery searchQuery = new NativeSearchQueryBuilder()
+        .withIndices(INDEX_NAME)
         .addAggregation(termsAggregationBuilder)
         .build();
     return this.template.query(searchQuery, response -> {
-      final StringTerms groupState = 
response.getAggregations().get("count_group_by_state");
-      return groupState.getBuckets()
-          .stream()
-          
.collect(Collectors.toMap(MultiBucketsAggregation.Bucket::getKeyAsString,
-              MultiBucketsAggregation.Bucket::getDocCount));
+      Map<String, Long> statistics = new HashMap<>();
+      if (response.getHits().totalHits > 0) {
+        final StringTerms groupState = 
response.getAggregations().get("count_group_by_state");
+        statistics = groupState.getBuckets()
+            .stream()
+            
.collect(Collectors.toMap(MultiBucketsAggregation.Bucket::getKeyAsString,
+                MultiBucketsAggregation.Bucket::getDocCount));
+      }
+      return statistics;
     });
   }
 
@@ -172,21 +179,24 @@ public class ElasticsearchTransactionRepository 
implements TransactionRepository
     // ElasticsearchTemplate.prepareScroll() does not add sorting 
https://jira.spring.io/browse/DATAES-457
     ObjectMapper jsonMapper = new ObjectMapper();
     List<GlobalTransaction> globalTransactions = new ArrayList();
-    SearchResponse response = 
this.template.getClient().prepareSearch(INDEX_NAME)
-        .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
-        .setQuery(QueryBuilders.matchAllQuery())
-        .addSort(SortBuilders.fieldSort("durationTime").order(SortOrder.DESC))
-        .setFrom(0).setSize(10).setExplain(true)
-        .get();
-    response.getHits().forEach(hit -> {
-      try {
-        GlobalTransactionDocument dto = jsonMapper
-            .readValue(hit.getSourceAsString(), 
GlobalTransactionDocument.class);
-        globalTransactions.add(dto);
-      } catch (Exception e) {
-        LOG.error(e.getMessage(), e);
-      }
-    });
+    IndicesStatsResponse indicesStatsResponse = 
this.template.getClient().admin().indices().prepareStats(INDEX_NAME).get();
+    
if(indicesStatsResponse.getIndices().get(INDEX_NAME).getTotal().docs.getCount()>0){
+      SearchResponse response = 
this.template.getClient().prepareSearch(INDEX_NAME)
+          .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
+          .setQuery(QueryBuilders.matchAllQuery())
+          
.addSort(SortBuilders.fieldSort("durationTime").order(SortOrder.DESC))
+          .setFrom(0).setSize(10).setExplain(true)
+          .get();
+      response.getHits().forEach(hit -> {
+        try {
+          GlobalTransactionDocument dto = jsonMapper
+              .readValue(hit.getSourceAsString(), 
GlobalTransactionDocument.class);
+          globalTransactions.add(dto);
+        } catch (Exception e) {
+          LOG.error(e.getMessage(), e);
+        }
+      });
+    }
     return globalTransactions;
   }
 
diff --git a/alpha/alpha-ui/src/main/resources/static/js/alpha-dashboard.js 
b/alpha/alpha-ui/src/main/resources/static/js/alpha-dashboard.js
index 483ff79..ba63d90 100644
--- a/alpha/alpha-ui/src/main/resources/static/js/alpha-dashboard.js
+++ b/alpha/alpha-ui/src/main/resources/static/js/alpha-dashboard.js
@@ -114,6 +114,12 @@ $(document).ready(function () {
     x -= x % 3;
     more = Math.round(n * d / p(10, x)) % d;
     y = Math.round(n * d / p(10, x)) / d + " kMGTPE"[x / 3];
-    return more==0?y:y+'+';
+    return more == 0 ? y : y + '+';
+  }
+
+  function millisToMinutesAndSeconds(millis) {
+    var minutes = Math.floor(millis / 60000);
+    var seconds = ((millis % 60000) / 1000).toFixed(0);
+    return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
   }
 });
\ No newline at end of file

Reply via email to