Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9F1A5200D1A for ; Mon, 9 Oct 2017 15:36:23 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 9D78E1609E0; Mon, 9 Oct 2017 13:36:23 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 954641609BB for ; Mon, 9 Oct 2017 15:36:22 +0200 (CEST) Received: (qmail 51457 invoked by uid 500); 9 Oct 2017 13:36:21 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 51448 invoked by uid 99); 9 Oct 2017 13:36:21 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Oct 2017 13:36:21 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id AB78CF562D; Mon, 9 Oct 2017 13:36:21 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ntikhonov@apache.org To: commits@ignite.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: ignite git commit: Fixed "IGNITE-6483 Tests for availability of metrics in MX beans". This closes #2806. Date: Mon, 9 Oct 2017 13:36:21 +0000 (UTC) archived-at: Mon, 09 Oct 2017 13:36:23 -0000 Repository: ignite Updated Branches: refs/heads/master a45677cf0 -> 218416c3a Fixed "IGNITE-6483 Tests for availability of metrics in MX beans". This closes #2806. Signed-off-by: nikolay_tikhonov 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/master Commit: 218416c3a432040253cf0bfcb193fc33f02b804b Parents: a45677c Author: Ilya Kasnacheev Authored: Mon Oct 9 16:36:07 2017 +0300 Committer: nikolay_tikhonov 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 nodes = grid(0).cluster().forRemotes().nodes(); + Collection nodes = grid(0).cluster().forRemotes().nodes(); - for (ClusterNode node : nodes) { - Map metrics = ((TcpDiscoveryNode) node).cacheMetrics(); - assertNotNull(metrics); - assertFalse(metrics.isEmpty()); - } - - assertMetrics(cache1); - assertMetrics(cache2); + for (ClusterNode node : nodes) { + Map 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 nodes = grid(0).cluster().forRemotes().nodes(); + Collection nodes = grid(0).cluster().forRemotes().nodes(); - for (ClusterNode node : nodes) { - Map metrics = ((TcpDiscoveryNode) node).cacheMetrics(); - assertNotNull(metrics); - assertTrue(metrics.isEmpty()); - } - - assertMetrics(cache1); - assertMetrics(cache2); + for (ClusterNode node : nodes) { + Map 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 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 cache) { + private void assertMetrics(IgniteCache 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() { + long sumGets = sum(ms, new IgniteClosure() { @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() { + long sumPuts = sum(ms, new IgniteClosure() { @Override public Long apply(CacheMetrics input) { return input.getCachePuts(); } - })); + }, expectNonZero); - assertEquals(metrics.getCacheHits(), sum(ms, new IgniteClosure() { + assertEquals(metrics.getCachePuts(), sumPuts); + assertEquals(cache.mxBean().getCachePuts(), sumPuts); + + long sumHits = sum(ms, new IgniteClosure() { @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() { + @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 f) { + private long sum(CacheMetrics[] ms, IgniteClosure 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 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 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 +}