You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2016/08/03 11:29:00 UTC

[18/48] ignite git commit: IGNITE-3443 WIP on metrics.

IGNITE-3443 WIP on metrics.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/60eea11a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/60eea11a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/60eea11a

Branch: refs/heads/ignite-3443
Commit: 60eea11ad22a86f5b783937b4669439692a61d49
Parents: 51ef112
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Thu Jul 28 17:08:04 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Thu Jul 28 17:08:04 2016 +0700

----------------------------------------------------------------------
 .../cache/query/GridCacheQueryManager.java      | 35 ++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/60eea11a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index c366877..4073652 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@ -38,7 +38,9 @@ import java.util.Queue;
 import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.atomic.AtomicInteger;
 import javax.cache.Cache;
 import javax.cache.expiry.ExpiryPolicy;
 import org.apache.ignite.Ignite;
@@ -150,6 +152,12 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
     private volatile GridCacheQueryMetricsAdapter metrics = new GridCacheQueryMetricsAdapter();
 
     /** */
+    private volatile ConcurrentHashMap<String, String> latestQueryMetrics = new ConcurrentHashMap<>();
+
+    /** */
+    private volatile ConcurrentHashMap<String, AtomicInteger> aggregatedQueryMetrics = new ConcurrentHashMap<>();
+
+    /** */
     private final ConcurrentMap<UUID, RequestFutureMap> qryIters =
         new ConcurrentHashMap8<>();
 
@@ -2061,6 +2069,8 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      */
     public void resetMetrics() {
         metrics = new GridCacheQueryMetricsAdapter();
+        latestQueryMetrics = new ConcurrentHashMap<>();
+        aggregatedQueryMetrics = new ConcurrentHashMap<>();
     }
 
     /**
@@ -2077,9 +2087,30 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
      * @param fail {@code true} if execution failed.
      */
     public void onCompleted(CacheQueryType qryType, String qry, long duration, boolean fail) {
-        log.warning("Query type: " + qryType + ", query: " + qry);
-
         metrics.onQueryCompleted(duration, fail);
+
+        latestQueryMetrics.put(qry, "Query [type=" + qryType + ", duration=" + duration + ", fail=" + fail + "]");
+
+        if (!aggregatedQueryMetrics.containsKey(qry))
+            aggregatedQueryMetrics.putIfAbsent(qry, new AtomicInteger());
+
+        aggregatedQueryMetrics.get(qry).incrementAndGet();
+
+        log.warning(">>> ---------------------------- <<<");
+
+        log.warning("latestQueryMetrics");
+
+        for (Map.Entry<String, String> entry : latestQueryMetrics.entrySet())
+            log.warning("  Query: " + entry.getKey() + " -> " + entry.getValue());
+
+        log.warning(">>> ============================ <<<");
+
+        log.warning("aggregatedQueryMetrics");
+
+        for (Map.Entry<String, AtomicInteger> entry : aggregatedQueryMetrics.entrySet())
+            log.warning("  Query: " + entry.getKey() + " -> " + entry.getValue());
+
+        log.warning(">>> ---------------------------- <<<");
     }
 
     /**