@Override public String getName() { return delegate.getName(); }
@Reference( cardinality = ReferenceCardinality.AT_LEAST_ONE, policy = ReferencePolicy.DYNAMIC ) synchronized void addCacheStatsMBean(CacheStatsMBean stats) { LOG.debug("addCacheStatsMBean({})", stats.getName()); cacheStatsMBeans.put(stats.getName(), stats); registerCacheStatsMBean(this.registry, stats); }
@Reference( cardinality = ReferenceCardinality.AT_LEAST_ONE, policy = ReferencePolicy.DYNAMIC ) synchronized void addCacheStatsMBean(CacheStatsMBean stats) { LOG.debug("addCacheStatsMBean({})", stats.getName()); cacheStatsMBeans.put(stats.getName(), stats); registerCacheStatsMBean(this.registry, stats); }
@Reference( cardinality = ReferenceCardinality.AT_LEAST_ONE, policy = ReferencePolicy.DYNAMIC ) synchronized void addCacheStatsMBean(CacheStatsMBean stats) { LOG.debug("addCacheStatsMBean({})", stats.getName()); cacheStatsMBeans.put(stats.getName(), stats); registerCacheStatsMBean(this.registry, stats); }
String getName() { return metricName(stats.getName(), type); } }
String getName() { return metricName(stats.getName(), type); } }
String getName() { return metricName(stats.getName(), type); } }
private static void unregisterCacheStatsMBean(MetricRegistry registry, CacheStatsMBean stats) { String name = stats.getName(); for (String t : TYPES) { registry.remove(metricName(name, t)); } }
private static void unregisterCacheStatsMBean(MetricRegistry registry, CacheStatsMBean stats) { String name = stats.getName(); for (String t : TYPES) { registry.remove(metricName(name, t)); } }
private static void unregisterCacheStatsMBean(MetricRegistry registry, CacheStatsMBean stats) { String name = stats.getName(); for (String t : TYPES) { registry.remove(metricName(name, t)); } }
CompositeDataSupport toCompositeData() { Object[] values = new Object[]{ stats.getName(), stats.getRequestCount(), stats.getHitCount(), new BigDecimal(stats.getHitRate(),new MathContext(2)), stats.getMissCount(), new BigDecimal(stats.getMissRate(), new MathContext(2)), stats.getLoadCount(), stats.getLoadSuccessCount(), stats.getLoadExceptionCount(), timeInWords(stats.getTotalLoadTime()), TimeUnit.NANOSECONDS.toMillis((long) stats.getAverageLoadPenalty()) + "ms", stats.getEvictionCount(), stats.getElementCount(), humanReadableByteCount(stats.estimateCurrentWeight()), humanReadableByteCount(stats.getMaxTotalWeight()), }; try { return new CompositeDataSupport(TYPE, FIELD_NAMES, values); } catch (OpenDataException e) { throw new IllegalStateException(e); } } }
CompositeDataSupport toCompositeData() { Object[] values = new Object[]{ stats.getName(), stats.getRequestCount(), stats.getHitCount(), new BigDecimal(stats.getHitRate(),new MathContext(2)), stats.getMissCount(), new BigDecimal(stats.getMissRate(), new MathContext(2)), stats.getLoadCount(), stats.getLoadSuccessCount(), stats.getLoadExceptionCount(), timeInWords(stats.getTotalLoadTime()), TimeUnit.NANOSECONDS.toMillis((long) stats.getAverageLoadPenalty()) + "ms", stats.getEvictionCount(), stats.getElementCount(), humanReadableByteCount(stats.estimateCurrentWeight()), humanReadableByteCount(stats.getMaxTotalWeight()), }; try { return new CompositeDataSupport(TYPE, FIELD_NAMES, values); } catch (OpenDataException e) { throw new IllegalStateException(e); } } }
CompositeDataSupport toCompositeData() { Object[] values = new Object[]{ stats.getName(), stats.getRequestCount(), stats.getHitCount(), new BigDecimal(stats.getHitRate(),new MathContext(2)), stats.getMissCount(), new BigDecimal(stats.getMissRate(), new MathContext(2)), stats.getLoadCount(), stats.getLoadSuccessCount(), stats.getLoadExceptionCount(), timeInWords(stats.getTotalLoadTime()), TimeUnit.NANOSECONDS.toMillis((long) stats.getAverageLoadPenalty()) + "ms", stats.getEvictionCount(), stats.getElementCount(), humanReadableByteCount(stats.estimateCurrentWeight()), humanReadableByteCount(stats.getMaxTotalWeight()), }; try { return new CompositeDataSupport(TYPE, FIELD_NAMES, values); } catch (OpenDataException e) { throw new IllegalStateException(e); } } }
@Test public void metrics() { MetricRegistry registry = new MetricRegistry(); CacheStatsMetrics metrics = new CacheStatsMetrics(); metrics.setMetricRegistry(registry); CacheStatsMBean bean = new TestStats("stats"); metrics.addCacheStatsMBean(bean); Map<String, Counter> counters = registry.getCounters(); Counter counter = counters.get(metricName(bean.getName(), REQUEST)); assertNotNull(counter); assertEquals(REQUEST_COUNT, counter.getCount()); counter = counters.get(metricName(bean.getName(), HIT)); assertNotNull(counter); assertEquals(HIT_COUNT, counter.getCount()); counter = counters.get(metricName(bean.getName(), MISS)); assertNotNull(counter); assertEquals(MISS_COUNT, counter.getCount()); counter = counters.get(metricName(bean.getName(), EVICTION)); assertNotNull(counter); assertEquals(EVICTION_COUNT, counter.getCount()); counter = counters.get(metricName(bean.getName(), ELEMENT)); assertNotNull(counter); assertEquals(ELEMENT_COUNT, counter.getCount()); counter = counters.get(metricName(bean.getName(), CacheStatsMetrics.LOAD_TIME)); assertNotNull(counter); assertEquals(LOAD_TIME, counter.getCount()); metrics.removeCacheStatsMBean(bean); assertEquals(0, registry.getCounters().size()); }
CacheStatsMBean segmentCacheStats = fileStore.getSegmentCacheStats(); registrations.add(registerMBean(segmentCacheStats, new ObjectName("IT:TYPE=" + segmentCacheStats.getName()))); CacheStatsMBean stringCacheStats = fileStore.getStringCacheStats(); registrations.add(registerMBean(stringCacheStats, new ObjectName("IT:TYPE=" + stringCacheStats.getName()))); CacheStatsMBean templateCacheStats = fileStore.getTemplateCacheStats(); registrations.add(registerMBean(templateCacheStats, new ObjectName("IT:TYPE=" + templateCacheStats.getName()))); CacheStatsMBean stringDeduplicationCacheStats = cacheManager.getStringCacheStats(); assertNotNull(stringDeduplicationCacheStats); registrations.add(registerMBean(stringDeduplicationCacheStats, new ObjectName("IT:TYPE=" + stringDeduplicationCacheStats.getName()))); CacheStatsMBean templateDeduplicationCacheStats = cacheManager.getTemplateCacheStats(); assertNotNull(templateDeduplicationCacheStats); registrations.add(registerMBean(templateDeduplicationCacheStats, new ObjectName("IT:TYPE=" + templateDeduplicationCacheStats.getName()))); CacheStatsMBean nodeDeduplicationCacheStats = cacheManager.getNodeCacheStats(); assertNotNull(nodeDeduplicationCacheStats); registrations.add(registerMBean(nodeDeduplicationCacheStats, new ObjectName("IT:TYPE=" + nodeDeduplicationCacheStats.getName()))); registrations.add(registerMBean(nodeStore.getStats(), new ObjectName("IT:TYPE=" + "SegmentNodeStore statistics")));
segmentCacheStats, CacheStats.TYPE, segmentCacheStats.getName() )); stringCacheStats, CacheStats.TYPE, stringCacheStats.getName() )); templateCacheStats, CacheStats.TYPE, templateCacheStats.getName() )); stringDeduplicationCacheStats, CacheStats.TYPE, stringDeduplicationCacheStats.getName() )); templateDeduplicationCacheStats, CacheStats.TYPE, templateDeduplicationCacheStats.getName() )); nodeDeduplicationCacheStats, CacheStats.TYPE, nodeDeduplicationCacheStats.getName() ));