@Override public Counter call() throws Exception { return underlying.createCounter(counterName); } });
@Override public void updateCounterValue(String name, long value) { Exceptions.checkNotNullOrEmpty(name, "name"); String counterName = name + ".Counter"; Counter counter = countersCache.getIfPresent(counterName); if (counter != null) { counter.clear(); } else { counter = underlying.createCounter(counterName); } counter.add(value); countersCache.put(name, counter); }
void setLogger(StatsLogger logger) { this.statsLoggerRef.set(logger); this.opStatsLoggers.values().forEach(v -> v.updateInstance(this.statsLoggerRef.get().createStats(v.getProxyName()))); this.counters.values().forEach(v -> v.updateInstance(this.statsLoggerRef.get().createCounter(v.getProxyName()))); this.meters.values().forEach(v -> v.updateInstance(this.statsLoggerRef.get().createMeter(v.getProxyName()))); this.gauges.values().forEach(v -> v.updateInstance(this.statsLoggerRef.get().registerGauge(v.getProxyName(), v.getValueSupplier()))); }
/** * Test that we can transition from stats enabled, to disabled, to enabled. */ @Test public void testMultipleInitialization() { MetricsConfig config = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, false) .build(); MetricsProvider.initialize(config); statsLogger.createCounter("counterDisabled"); assertEquals(null, MetricRegistryUtils.getCounter("counterDisabled")); config = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, true) .build(); MetricsProvider.initialize(config); statsLogger.createCounter("counterEnabled"); Assert.assertNotNull( MetricRegistryUtils.getCounter("pravega.testStatsLogger.counterEnabled")); }
/** * Test counter registered and worked well with StatsLogger. */ @Test public void testCounter() { Counter testCounter = statsLogger.createCounter("testCounter"); testCounter.add(17); assertEquals(17, testCounter.get()); // test dynamic counter int sum = 0; for (int i = 1; i < 10; i++) { sum += i; dynamicLogger.incCounterValue("dynamicCounter", i); assertEquals(sum, MetricRegistryUtils.getCounter("pravega.dynamicCounter.Counter").getCount()); } dynamicLogger.freezeCounter("dynamicCounter"); assertEquals(null, MetricRegistryUtils.getCounter("pravega.dynamicCounter.Counter")); }
/** * Test that we can transition from stats enabled, to disabled, to enabled. */ @Test public void testContinuity() { statsLogger.createCounter("continuity-counter"); Assert.assertNotNull("Not registered before disabling.", MetricRegistryUtils.getCounter("pravega.testStatsLogger.continuity-counter")); MetricsConfig disableConfig = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, false) .build(); MetricsProvider.initialize(disableConfig); Assert.assertNull("Still registered after disabling.", MetricRegistryUtils.getCounter("pravega.testStatsLogger.continuity-counter")); MetricsConfig enableConfig = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, true) .build(); MetricsProvider.initialize(enableConfig); Assert.assertNotNull("Not registered after re-enabling.", MetricRegistryUtils.getCounter("pravega.testStatsLogger.continuity-counter")); }
/** * Test transition back to null provider. */ @Test public void testTransitionBackToNullProvider() { MetricsConfig config = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, false) .build(); MetricsProvider.initialize(config); Counter counter = statsLogger.createCounter("continuity-counter"); counter.add(1L); assertEquals(0L, counter.get()); config = MetricsConfig.builder() .with(MetricsConfig.ENABLE_STATISTICS, true) .build(); MetricsProvider.initialize(config); counter.add(1L); assertEquals(1L, counter.get()); } }