You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/10/10 12:44:08 UTC

[04/15] ignite git commit: Fixed "IGNITE-6483 Tests for availability of metrics in MX beans". This closes #2806.

Fixed "IGNITE-6483 Tests for availability of metrics in MX beans". This closes #2806.

Signed-off-by: nikolay_tikhonov <nt...@gridgain.com>


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

Branch: refs/heads/ignite-5937
Commit: 218416c3a432040253cf0bfcb193fc33f02b804b
Parents: a45677c
Author: Ilya Kasnacheev <il...@gmail.com>
Authored: Mon Oct 9 16:36:07 2017 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Mon Oct 9 16:36:07 2017 +0300

----------------------------------------------------------------------
 .../processors/cache/CacheMetricsImpl.java      |   2 +-
 .../CacheMetricsForClusterGroupSelfTest.java    | 119 ++++++++++++-------
 ...heapCacheMetricsForClusterGroupSelfTest.java |  19 ++-
 3 files changed, 96 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/218416c3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
index 413b60d..7d9cda8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheMetricsImpl.java
@@ -227,7 +227,7 @@ public class CacheMetricsImpl implements CacheMetrics {
     /** {@inheritDoc} */
     @Override public long getHeapEntriesCount() {
         try {
-            return cctx.cache().localSize(ONHEAP_PEEK_MODES);
+            return cctx.cache().localSizeLong(ONHEAP_PEEK_MODES);
         }
         catch (IgniteCheckedException ignored) {
             return 0;

http://git-wip-us.apache.org/repos/asf/ignite/blob/218416c3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java
index ee8aa8a..aefbc23 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMetricsForClusterGroupSelfTest.java
@@ -91,26 +91,29 @@ public class CacheMetricsForClusterGroupSelfTest extends GridCommonAbstractTest
     public void testMetricsStatisticsEnabled() throws Exception {
         createCaches(true);
 
-        populateCacheData(cache1, ENTRY_CNT_CACHE1);
-        populateCacheData(cache2, ENTRY_CNT_CACHE2);
+        try {
+            populateCacheData(cache1, ENTRY_CNT_CACHE1);
+            populateCacheData(cache2, ENTRY_CNT_CACHE2);
 
-        readCacheData(cache1, ENTRY_CNT_CACHE1);
-        readCacheData(cache2, ENTRY_CNT_CACHE2);
+            readCacheData(cache1, ENTRY_CNT_CACHE1);
+            readCacheData(cache2, ENTRY_CNT_CACHE2);
 
-        awaitMetricsUpdate();
+            awaitMetricsUpdate();
 
-        Collection<ClusterNode> nodes = grid(0).cluster().forRemotes().nodes();
+            Collection<ClusterNode> nodes = grid(0).cluster().forRemotes().nodes();
 
-        for (ClusterNode node : nodes) {
-            Map<Integer, CacheMetrics> metrics = ((TcpDiscoveryNode) node).cacheMetrics();
-            assertNotNull(metrics);
-            assertFalse(metrics.isEmpty());
-        }
-
-        assertMetrics(cache1);
-        assertMetrics(cache2);
+            for (ClusterNode node : nodes) {
+                Map<Integer, CacheMetrics> metrics = ((TcpDiscoveryNode)node).cacheMetrics();
+                assertNotNull(metrics);
+                assertFalse(metrics.isEmpty());
+            }
 
-        destroyCaches();
+            assertMetrics(cache1, true);
+            assertMetrics(cache2, true);
+        }
+        finally {
+            destroyCaches();
+        }
     }
 
     /**
@@ -119,26 +122,29 @@ public class CacheMetricsForClusterGroupSelfTest extends GridCommonAbstractTest
     public void testMetricsStatisticsDisabled() throws Exception {
         createCaches(false);
 
-        populateCacheData(cache1, ENTRY_CNT_CACHE1);
-        populateCacheData(cache2, ENTRY_CNT_CACHE2);
+        try {
+            populateCacheData(cache1, ENTRY_CNT_CACHE1);
+            populateCacheData(cache2, ENTRY_CNT_CACHE2);
 
-        readCacheData(cache1, ENTRY_CNT_CACHE1);
-        readCacheData(cache2, ENTRY_CNT_CACHE2);
+            readCacheData(cache1, ENTRY_CNT_CACHE1);
+            readCacheData(cache2, ENTRY_CNT_CACHE2);
 
-        awaitMetricsUpdate();
+            awaitMetricsUpdate();
 
-        Collection<ClusterNode> nodes = grid(0).cluster().forRemotes().nodes();
+            Collection<ClusterNode> nodes = grid(0).cluster().forRemotes().nodes();
 
-        for (ClusterNode node : nodes) {
-            Map<Integer, CacheMetrics> metrics = ((TcpDiscoveryNode) node).cacheMetrics();
-            assertNotNull(metrics);
-            assertTrue(metrics.isEmpty());
-        }
-
-        assertMetrics(cache1);
-        assertMetrics(cache2);
+            for (ClusterNode node : nodes) {
+                Map<Integer, CacheMetrics> metrics = ((TcpDiscoveryNode) node).cacheMetrics();
+                assertNotNull(metrics);
+                assertTrue(metrics.isEmpty());
+            }
 
-        destroyCaches();
+            assertMetrics(cache1, false);
+            assertMetrics(cache2, false);
+        }
+        finally {
+            destroyCaches();
+        }
     }
 
     /**
@@ -200,13 +206,13 @@ public class CacheMetricsForClusterGroupSelfTest extends GridCommonAbstractTest
      */
     private void readCacheData(IgniteCache<Integer, Integer> cache, int cnt) {
         for (int i = 0; i < cnt; i++)
-            cache.get(i);
+            grid(i % GRID_CNT).cache(cache.getName()).get(i);
     }
 
     /**
      * @param cache Cache.
      */
-    private void assertMetrics(IgniteCache<Integer, Integer> cache) {
+    private void assertMetrics(IgniteCache<Integer, Integer> cache, boolean expectNonZero) {
         CacheMetrics[] ms = new CacheMetrics[GRID_CNT];
 
         for (int i = 0; i < GRID_CNT; i++) {
@@ -220,36 +226,65 @@ public class CacheMetricsForClusterGroupSelfTest extends GridCommonAbstractTest
                 assertEquals(metrics.name(), ms[j].name());
 
             // Dynamic metrics
-            assertEquals(metrics.getCacheGets(), sum(ms, new IgniteClosure<CacheMetrics, Long>() {
+            long sumGets = sum(ms, new IgniteClosure<CacheMetrics, Long>() {
                 @Override public Long apply(CacheMetrics input) {
                     return input.getCacheGets();
                 }
-            }));
+            }, expectNonZero);
+
+            assertEquals(metrics.getCacheGets(), sumGets);
+            assertEquals(cache.mxBean().getCacheGets(), sumGets);
 
-            assertEquals(metrics.getCachePuts(), sum(ms, new IgniteClosure<CacheMetrics, Long>() {
+            long sumPuts = sum(ms, new IgniteClosure<CacheMetrics, Long>() {
                 @Override public Long apply(CacheMetrics input) {
                     return input.getCachePuts();
                 }
-            }));
+            }, expectNonZero);
 
-            assertEquals(metrics.getCacheHits(), sum(ms, new IgniteClosure<CacheMetrics, Long>() {
+            assertEquals(metrics.getCachePuts(), sumPuts);
+            assertEquals(cache.mxBean().getCachePuts(), sumPuts);
+
+            long sumHits = sum(ms, new IgniteClosure<CacheMetrics, Long>() {
                 @Override public Long apply(CacheMetrics input) {
                     return input.getCacheHits();
                 }
-            }));
+            }, expectNonZero);
+
+            assertEquals(metrics.getCacheHits(), sumHits);
+            assertEquals(cache.mxBean().getCacheHits(), sumHits);
+
+            if (expectNonZero) {
+                long sumHeapEntries = sum(ms, new IgniteClosure<CacheMetrics, Long>() {
+                    @Override public Long apply(CacheMetrics input) {
+                        return input.getHeapEntriesCount();
+                    }
+                    // Currently non-zero even when statistics is off
+                }, true);
+
+                assertEquals(metrics.getHeapEntriesCount(), sumHeapEntries);
+                assertEquals(cache.mxBean().getHeapEntriesCount(), sumHeapEntries);
+            }
+
         }
     }
 
     /**
      * @param ms Milliseconds.
      * @param f Function.
+     * @param expectNonZero Check if each value is non-zero.
      */
-    private long sum(CacheMetrics[] ms, IgniteClosure<CacheMetrics, Long> f) {
+    private long sum(CacheMetrics[] ms, IgniteClosure<CacheMetrics, Long> f, boolean expectNonZero) {
         long res = 0;
 
-        for (int i = 0; i < GRID_CNT; i++)
-            res += f.apply(ms[i]);
+        for (int i = 0; i < GRID_CNT; i++) {
+            long val = f.apply(ms[i]);
+
+            if (expectNonZero)
+                assertTrue(val > 0);
+
+            res += val;
+        }
 
         return res;
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/218416c3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java
index a3d3130..e13f99b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/OffheapCacheMetricsForClusterGroupSelfTest.java
@@ -117,14 +117,31 @@ public class OffheapCacheMetricsForClusterGroupSelfTest extends GridCommonAbstra
     }
 
     private void assertGetOffHeapPrimaryEntriesCount(String cacheName, int count) throws Exception {
+        long localPrimary = 0L;
+        long localBackups = 0L;
+
         for (int i = 0; i < GRID_CNT; i++) {
             IgniteCache<Integer, Integer> cache = grid("server-" + i).cache(cacheName);
             assertEquals(count, cache.metrics().getOffHeapPrimaryEntriesCount());
+            assertEquals(count, cache.mxBean().getOffHeapPrimaryEntriesCount());
+            assertEquals(count, cache.metrics().getOffHeapBackupEntriesCount());
+            assertEquals(count, cache.mxBean().getOffHeapBackupEntriesCount());
+
+            localPrimary += cache.localMxBean().getOffHeapPrimaryEntriesCount();
+            localBackups += cache.localMxBean().getOffHeapPrimaryEntriesCount();
         }
 
+        assertEquals(count, localPrimary);
+        assertEquals(count, localBackups);
+
         for (int i = 0; i < CLIENT_CNT; i++) {
             IgniteCache<Integer, Integer> cache = grid("client-" + i).cache(cacheName);
             assertEquals(count, cache.metrics().getOffHeapPrimaryEntriesCount());
+            assertEquals(count, cache.mxBean().getOffHeapPrimaryEntriesCount());
+            assertEquals(count, cache.metrics().getOffHeapBackupEntriesCount());
+            assertEquals(count, cache.mxBean().getOffHeapBackupEntriesCount());
+            assertEquals(0L, cache.localMxBean().getOffHeapPrimaryEntriesCount());
+            assertEquals(0L, cache.localMxBean().getOffHeapBackupEntriesCount());
         }
     }
 
@@ -135,4 +152,4 @@ public class OffheapCacheMetricsForClusterGroupSelfTest extends GridCommonAbstra
         cfg.setStatisticsEnabled(true);
         return cfg;
     }
-}
\ No newline at end of file
+}