You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2019/08/10 07:50:25 UTC
[servicecomb-pack] 20/36: SCB-1411 Number Abbreviation
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 <co...@gmail.com>
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