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 c0b2b7b5b5cf53ba061f5d6792f10d5de3bd9431 Author: Lei Zhang <[email protected]> AuthorDate: Wed Aug 7 23:39:28 2019 +0800 SCB-1411 Implement dashboard slow transaction top N --- .../pack/alpha/ui/TransactionController.java | 29 ++++++++++++++++++++++ .../main/resources/static/js/alpha-dashboard.js | 20 +++++++++++++++ .../src/main/resources/templates/index.html | 2 +- 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/alpha/alpha-ui/src/main/java/org/apache/servicecomb/pack/alpha/ui/TransactionController.java b/alpha/alpha-ui/src/main/java/org/apache/servicecomb/pack/alpha/ui/TransactionController.java index ff47ec7..bbadf70 100644 --- a/alpha/alpha-ui/src/main/java/org/apache/servicecomb/pack/alpha/ui/TransactionController.java +++ b/alpha/alpha-ui/src/main/java/org/apache/servicecomb/pack/alpha/ui/TransactionController.java @@ -33,6 +33,8 @@ import org.apache.servicecomb.pack.alpha.ui.vo.TransactionStatisticsDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.context.WebServerInitializedEvent; import org.springframework.context.ApplicationListener; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -196,6 +198,33 @@ public class TransactionController implements ApplicationListener<WebServerIniti return statisticsDTO; } + @GetMapping("/ui/transaction/slow") + @ResponseBody + public List<TransactionRowDTO> getSlowGlobalTransactionTopN() { + List<TransactionRowDTO> transactionRowDTOS = new ArrayList<>(); + UriComponents uriComponents = UriComponentsBuilder + .fromUriString("http://localhost:" + serverPort + "/alpha/api/v1/transaction/slow") + .build(); + ResponseEntity<List<GlobalTransaction>> entity = restTemplate + .exchange(uriComponents.toUriString(), HttpMethod.GET, null, + new ParameterizedTypeReference<List<GlobalTransaction>>() { + }); + List<GlobalTransaction> transactions = entity.getBody(); + transactions.stream().forEach( globalTransaction -> { + transactionRowDTOS.add(TransactionRowDTO.builder() + .serviceName(globalTransaction.getServiceName()) + .instanceId(globalTransaction.getInstanceId()) + .globalTxId(globalTransaction.getGlobalTxId()) + .state(globalTransaction.getState()) + .beginTime(globalTransaction.getBeginTime()) + .endTime(globalTransaction.getEndTime()) + .subTxSize(globalTransaction.getSubTxSize()) + .durationTime(globalTransaction.getDurationTime()) + .build()); + }); + return transactionRowDTOS; + } + private GlobalTransaction findGlobalTransactionByGlobalTxId(String globalTxId){ UriComponents uriComponents = UriComponentsBuilder .fromUriString("http://localhost:" + serverPort + "/alpha/api/v1/transaction/"+globalTxId) 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 e292e7a..d64d657 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 @@ -27,4 +27,24 @@ $(document).ready(function () { // TODO show message } }); + + $.ajax('/ui/transaction/slow', { + success: function (data) { + for (i = 0; i < data.length; i++) { + $('.slow-topn').append( + '<a href="/ui/transaction/' + data[i].globalTxId + + '"><div class="progress mb-3" id="slow-top-"' + i + '>\n' + + '<div class="progress-bar" role="progressbar" style="cursor:pointer; width: ' + + (data[i].durationTime / data[0].durationTime) * 100 + + '%" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100">' + + data[i].durationTime + ' ms</div>\n' + + '</div></a>') + } + }, + error: function (state) { + // TODO show message + } + }); + + }); \ No newline at end of file diff --git a/alpha/alpha-ui/src/main/resources/templates/index.html b/alpha/alpha-ui/src/main/resources/templates/index.html index bc13638..5ed8b7f 100644 --- a/alpha/alpha-ui/src/main/resources/templates/index.html +++ b/alpha/alpha-ui/src/main/resources/templates/index.html @@ -123,7 +123,7 @@ </div> <!-- Card Body --> <div class="card-body"> - <div class="chart-area"> + <div class="slow-topn"> </div> </div> </div>
