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
commit dc1339fd3f40ef0541edb8f7a280004bd366bbf4 Author: Dmitriy Pavlov <[email protected]> AuthorDate: Mon Sep 17 20:07:38 2018 +0300 Cache sizes --- .../org/apache/ignite/ci/conf/PasswordEncoder.java | 4 +-- .../ci/web/rest/monitoring/MonitoringService.java | 35 ++++++++++++++++++++-- .../src/main/webapp/monitoring.html | 20 ++++++++++++- 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/conf/PasswordEncoder.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/conf/PasswordEncoder.java index d7b9f9f..f6be3e4 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/conf/PasswordEncoder.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/conf/PasswordEncoder.java @@ -105,8 +105,8 @@ public class PasswordEncoder { Preconditions.checkState(decode.equals(pass)); } - public static void main2(String[] args) { - String tok = HelperConfig.userPwdToToken("ignitetcbot", "mmm"); + public static void main3(String[] args) { + String tok = HelperConfig.userPwdToToken("ignitetcbot", "222"); String encode = encode(tok); System.err.println("Encoded: " + HelperConfig.JIRA_AUTH_TOKEN + "=" + encode); String decode = decode(encode); diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/MonitoringService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/MonitoringService.java index 0a25b7b..66e2487 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/MonitoringService.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/MonitoringService.java @@ -16,6 +16,9 @@ */ package org.apache.ignite.ci.web.rest.monitoring; +import org.apache.ignite.Ignite; +import org.apache.ignite.IgniteCache; +import org.apache.ignite.cache.CacheMetrics; import org.apache.ignite.ci.di.ProfilingInterceptor; import org.apache.ignite.ci.web.CtxListener; @@ -26,9 +29,7 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -57,4 +58,32 @@ public class MonitoringService { .limit(100) .map(HotSpot::toString).collect(Collectors.toList()); } + + @GET + @PermitAll + @Path("caches") + public List<String> getCacheStat() { + Ignite ignite = CtxListener.getInjector(ctx).getInstance(Ignite.class); + + + List<String> res = new ArrayList<>(); + for (Iterator<String> iterator = ignite.cacheNames().iterator(); iterator.hasNext(); ) { + String next = iterator.next(); + + IgniteCache<?, ?> cache = ignite.cache(next); + + if (cache == null) + continue; + CacheMetrics metrics = cache.metrics(); + + int size = cache.size(); + //float averageGetTime = metrics.getAverageGetTime(); + // float averagePutTime = metrics.getAveragePutTime(); + + // res.add(next + ": " + size + " get " + averageGetTime + " put " + averagePutTime); + + res.add(next + ": " + size); + } + return res; + } } diff --git a/ignite-tc-helper-web/src/main/webapp/monitoring.html b/ignite-tc-helper-web/src/main/webapp/monitoring.html index e80b146..08a97ef 100644 --- a/ignite-tc-helper-web/src/main/webapp/monitoring.html +++ b/ignite-tc-helper-web/src/main/webapp/monitoring.html @@ -37,9 +37,17 @@ success: function(result) { $("#loadStatus").html(""); - showProfiling(result); + }, + error: showErrInLoadStatus + }); + + $.ajax({ + url: "rest/monitoring/caches", + success: function(result) { + $("#loadStatus").html(""); + showCaches(result); }, error: showErrInLoadStatus }); @@ -53,10 +61,20 @@ $("#profiling").html(res); } + function showCaches(result) { + var res = "" ; + for (var i = 0; i < result.length; i++) { + res += result[i] + "<br>"; + } + $("#caches").html(res); + } + </script> Profiling Data: <div id="profiling" style="font-family: monospace"></div> +Caches Data: +<div id="caches" style="font-family: monospace"></div> <div id="loadStatus"></div> <div id="version"></div>
