cacheName = loc.name(); isEmpty = loc.isEmpty(); isWriteBehindEnabled = loc.isWriteBehindEnabled(); writeBehindFlushSize = loc.getWriteBehindFlushSize(); writeBehindFlushThreadCnt = loc.getWriteBehindFlushThreadCount(); writeBehindFlushFreq = loc.getWriteBehindFlushFrequency(); writeBehindStoreBatchSize = loc.getWriteBehindStoreBatchSize(); writeBehindBufSize = loc.getWriteBehindBufferSize(); size = loc.getSize(); cacheSize = loc.getCacheSize(); keySize = loc.getKeySize(); keyType = loc.getKeyType(); valType = loc.getValueType(); isStoreByVal = loc.isStoreByValue(); isStatisticsEnabled = loc.isStatisticsEnabled(); isManagementEnabled = loc.isManagementEnabled(); isReadThrough = loc.isReadThrough(); isWriteThrough = loc.isWriteThrough(); isValidForReading = loc.isValidForReading(); isValidForWriting = loc.isValidForWriting(); reads += e.getCacheGets(); puts += e.getCachePuts(); hits += e.getCacheHits(); misses += e.getCacheMisses(); txCommits += e.getCacheTxCommits(); txRollbacks += e.getCacheTxRollbacks(); evicts += e.getCacheEvictions();
/** {@inheritDoc} */ @Override public float getCacheHitPercentage() { return cache.clusterMetrics().getCacheHitPercentage(); }
/** {@inheritDoc} */ @Override public float getCacheMissPercentage() { return cache.clusterMetrics().getCacheMissPercentage(); }
/** {@inheritDoc} */ @Override public IgniteInternalFuture<?> applyx(IgniteInternalCache<Object, Object> c, GridKernalContext ctx) { CacheMetrics metrics = c.cache().localMetrics(); assert metrics != null; return new GridFinishedFuture<Object>(new GridCacheRestMetrics( (int)metrics.getCacheGets(), (int)(metrics.getCacheRemovals() + metrics.getCachePuts()), (int)metrics.getCacheHits(), (int)metrics.getCacheMisses()) ); } }
size = m.getSize(); keySize = m.getKeySize(); cacheSize = m.getCacheSize(); reads = m.getCacheGets(); writes = m.getCachePuts() + m.getCacheRemovals(); hits = m.getCacheHits(); misses = m.getCacheMisses(); txCommits = m.getCacheTxCommits(); txRollbacks = m.getCacheTxRollbacks(); avgTxCommitTime = m.getAverageTxCommitTime(); avgTxRollbackTime = m.getAverageTxRollbackTime(); puts = m.getCachePuts(); removals = m.getCacheRemovals(); evictions = m.getCacheEvictions(); avgReadTime = m.getAverageGetTime(); avgPutTime = m.getAveragePutTime(); avgRemovalTime = m.getAverageRemoveTime(); readsPerSec = perSecond(m.getAverageGetTime()); putsPerSec = perSecond(m.getAveragePutTime()); removalsPerSec = perSecond(m.getAverageRemoveTime()); commitsPerSec = perSecond(m.getAverageTxCommitTime()); rollbacksPerSec = perSecond(m.getAverageTxRollbackTime());
CacheMetrics m = grid(i).cache(DEFAULT_CACHE_NAME).localMetrics(); assertEquals(m.getCacheGets(), 0); assertEquals(m.getCachePuts(), 0); assertEquals(m.getCacheRemovals(), 0); assertEquals(m.getCacheHits(), 0); assertEquals(m.getCacheMisses(), 0); assertEquals(m.getAverageGetTime(), 0f); assertEquals(m.getAverageRemoveTime(), 0f); assertEquals(m.getAveragePutTime(), 0f); assertEquals(m.getAverageTxCommitTime(), 0f); assertEquals(m.getAverageTxRollbackTime(), 0f); assertEquals(m.getEntryProcessorPuts(), 0); assertEquals(m.getEntryProcessorRemovals(), 0); assertEquals(m.getEntryProcessorReadOnlyInvocations(), 0); assertEquals(m.getEntryProcessorMinInvocationTime(), 0f); assertEquals(m.getEntryProcessorMaxInvocationTime(), 0f); assertEquals(m.getEntryProcessorAverageInvocationTime(), 0f); assertEquals(m.getEntryProcessorInvocations(), 0);
/** * @throws Exception If failed. */ @Test public void testEntryProcessorRemove() throws Exception { IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME); cache.put(1, 20); int result = cache.invoke(1, new EntryProcessor<Integer, Integer, Integer>() { @Override public Integer process(MutableEntry<Integer, Integer> entry, Object... arguments) throws EntryProcessorException { Integer result = entry.getValue(); entry.remove(); return result; } }); assertEquals(1L, cache.localMetrics().getCachePuts()); assertEquals(20, result); assertEquals(1L, cache.localMetrics().getCacheHits()); assertEquals(100.0f, cache.localMetrics().getCacheHitPercentage()); assertEquals(0L, cache.localMetrics().getCacheMisses()); assertEquals(0f, cache.localMetrics().getCacheMissPercentage()); assertEquals(1L, cache.localMetrics().getCachePuts()); assertEquals(1L, cache.localMetrics().getCacheRemovals()); assertEquals(0L, cache.localMetrics().getCacheEvictions()); assert cache.localMetrics().getAveragePutTime() >= 0; assert cache.localMetrics().getAverageGetTime() >= 0; assert cache.localMetrics().getAverageRemoveTime() >= 0; }
/** * @throws Exception If failed. */ @Test public void testMissHitPercentage() throws Exception { IgniteCache<Integer, Integer> cache0 = grid(0).cache(DEFAULT_CACHE_NAME); final int keyCnt = keyCount(); // Put and get a few keys. for (int i = 0; i < keyCnt; i++) { cache0.getAndPut(i, i); // +1 read info("Puts: " + cache0.localMetrics().getCachePuts()); for (int j = 0; j < gridCount(); j++) { IgniteCache<Integer, Integer> cache = grid(j).cache(DEFAULT_CACHE_NAME); long cacheWrites = cache.localMetrics().getCachePuts(); assertEquals("Wrong cache metrics [i=" + i + ", grid=" + j + ']', i + 1, cacheWrites); } assertEquals("Wrong value for key: " + i, Integer.valueOf(i), cache0.get(i)); // +1 read } // Check metrics for the whole cache. for (int i = 0; i < gridCount(); i++) { CacheMetrics m = grid(i).cache(DEFAULT_CACHE_NAME).localMetrics(); assertEquals(m.getCacheHits() * 100f / m.getCacheGets(), m.getCacheHitPercentage(), 0.1f); assertEquals(m.getCacheMisses() * 100f / m.getCacheGets(), m.getCacheMissPercentage(), 0.1f); } }
/** * Asserts that only local metrics are updating. * * @param cacheName Cache name. */ private void assertOnlyLocalMetricsUpdating(String cacheName) { for (int i = 0; i < GRID_CNT; i++) { IgniteCache cache = grid(i).cache(cacheName); CacheMetrics clusterMetrics = cache.metrics(grid(i).cluster().forCacheNodes(cacheName)); CacheMetrics locMetrics = cache.localMetrics(); assertEquals(clusterMetrics.name(), locMetrics.name()); assertEquals(0L, clusterMetrics.getCacheGets()); assertEquals(0L, cache.mxBean().getCacheGets()); assertEquals(locMetrics.getCacheGets(), cache.localMxBean().getCacheGets()); assertEquals(0L, clusterMetrics.getCachePuts()); assertEquals(0L, cache.mxBean().getCachePuts()); assertEquals(locMetrics.getCachePuts(), cache.localMxBean().getCachePuts()); assertEquals(0L, clusterMetrics.getCacheHits()); assertEquals(0L, cache.mxBean().getCacheHits()); assertEquals(locMetrics.getCacheHits(), cache.localMxBean().getCacheHits()); } }
assertEquals(missCount, cache.localMetrics().getCacheMisses()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); assertEquals(hitCount, cache.localMetrics().getCacheHits()); assertEquals(putCount, cache.localMetrics().getCachePuts()); assertEquals(missCount, cache.localMetrics().getCacheMisses());
assertEquals(0, cacheMetrics.getCacheTxCommits()); assertEquals(TX_CNT, cacheMetrics.getCacheTxRollbacks()); assert cacheMetrics.getAverageTxRollbackTime() > 1000 : cacheMetrics.getAverageTxRollbackTime(); assertEquals(0, cacheMetrics.getCacheTxRollbacks());
assertEquals(TX_CNT, cacheMetrics.getCacheTxCommits()); assert cacheMetrics.getAverageTxCommitTime() > 1000 : cacheMetrics.getAverageTxCommitTime(); assertEquals(0, cacheMetrics.getCacheTxCommits()); assertEquals(0, cacheMetrics.getCacheTxRollbacks());
assertEquals(1, cache0.localMetrics().getCachePuts()); assertEquals(1, cache0.localMetrics().getCacheRemovals()); assertEquals(1, cache0.localMetrics().getCacheGets());
/** * @throws Exception If failed. */ @Test public void testPutAllAvgTime() throws Exception { IgniteCache<Integer, Integer> cache = grid(0).cache(DEFAULT_CACHE_NAME); assertEquals(0.0, cache.localMetrics().getAveragePutTime(), 0.0); assertEquals(0, cache.localMetrics().getCachePuts()); Map<Integer, Integer> values = new HashMap<>(); values.put(1, 1); values.put(2, 2); values.put(3, 3); cache.putAll(values); float averagePutTime = cache.localMetrics().getAveragePutTime(); assert averagePutTime >= 0; assertEquals(values.size(), cache.localMetrics().getCachePuts()); }
/** * @throws Exception If failed. */ @Test public void testGetAndPutAsyncAvgTime() throws Exception { IgniteCache<Object, Object> cache = grid(0).cache(DEFAULT_CACHE_NAME); Integer key = null; for (int i = 0; i < 1000; i++) { if (affinity(cache).isPrimary(grid(0).localNode(), i)) { key = i; break; } } assertEquals(0.0, cache.localMetrics().getAveragePutTime(), 0.0); assertEquals(0.0, cache.localMetrics().getAverageGetTime(), 0.0); cache.getAndPutAsync(key, key).get(); TimeUnit.MILLISECONDS.sleep(100L); assert cache.localMetrics().getAveragePutTime() > 0; assert cache.localMetrics().getAverageGetTime() > 0; }
/** {@inheritDoc} */ @Override public float getAverageRemoveTime() { return cache.clusterMetrics().getAverageRemoveTime(); }
/** * This test is just a wrapper for org.apache.ignite.examples.datagrid.CachePopularNumbersExample * * @throws Exception If failed. */ @Test public void testHitsAndMisses() throws Exception { MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.METRICS); startGrids(GRID_CNT); awaitPartitionMapExchange(); try { final Ignite g = grid(0); realTimePopulate(g); // Check metrics for the whole cache. long hits = 0; long misses = 0; for (int i = 0; i < GRID_CNT; i++) { CacheMetrics m = grid(i).cache(DEFAULT_CACHE_NAME).localMetrics(); hits += m.getCacheHits(); misses += m.getCacheMisses(); } // Check that invoke and loader updated metrics assertEquals(CNT / 2, hits); assertEquals(CNT / 2, misses); } finally { stopAllGrids(); } }
/** {@inheritDoc} */ @Override public float getAverageGetTime() { return cache.clusterMetrics().getAverageGetTime(); }
@Override public Long apply(CacheMetrics input) { return input.getCacheGets(); } }, expectNonZero);
/** {@inheritDoc} */ @Override public float getAveragePutTime() { return cache.clusterMetrics().getAveragePutTime(); }