Author: chetanm
Date: Tue Nov 24 16:56:30 2015
New Revision: 1716208
URL: http://svn.apache.org/viewvc?rev=1716208&view=rev
Log:
OAK-3654 - Integrate with Metrics for various stats collection
Refactor to remove redundant wrapper class
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/MetricCounterStats.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/MetricMeterStats.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/MetricTimerStats.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStats.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/MetricStatisticsProvider.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStatsTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStats.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStats.java?rev=1716208&r1=1716207&r2=1716208&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStats.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStats.java
Tue Nov 24 16:56:30 2015
@@ -21,6 +21,9 @@ package org.apache.jackrabbit.oak.plugin
import java.util.concurrent.TimeUnit;
+import com.codahale.metrics.Counter;
+import com.codahale.metrics.Meter;
+import com.codahale.metrics.Timer;
import org.apache.jackrabbit.oak.stats.CounterStats;
import org.apache.jackrabbit.oak.stats.MeterStats;
import org.apache.jackrabbit.oak.stats.SimpleStats;
@@ -33,24 +36,24 @@ import org.apache.jackrabbit.oak.stats.T
*/
class CompositeStats implements CounterStats, MeterStats, TimerStats {
private final SimpleStats delegate;
- private final CounterStats counter;
- private final TimerStats timer;
- private final MeterStats meter;
+ private final Counter counter;
+ private final Timer timer;
+ private final Meter meter;
- public CompositeStats(SimpleStats delegate, CounterStats counter) {
+ public CompositeStats(SimpleStats delegate, Counter counter) {
this(delegate, counter, null, null);
}
- public CompositeStats(SimpleStats delegate, TimerStats timer) {
+ public CompositeStats(SimpleStats delegate, Timer timer) {
this(delegate, null, timer, null);
}
- public CompositeStats(SimpleStats delegate, MeterStats meter) {
+ public CompositeStats(SimpleStats delegate, Meter meter) {
this(delegate, null, null, meter);
}
- private CompositeStats(SimpleStats delegate, CounterStats counter,
- TimerStats timer, MeterStats meter) {
+ private CompositeStats(SimpleStats delegate, Counter counter,
+ Timer timer, Meter meter) {
this.delegate = delegate;
this.counter = counter;
this.timer = timer;
@@ -103,4 +106,16 @@ class CompositeStats implements CounterS
boolean isCounter() {
return meter == null && timer == null && counter != null;
}
+
+ Counter getCounter() {
+ return counter;
+ }
+
+ Timer getTimer() {
+ return timer;
+ }
+
+ Meter getMeter() {
+ return meter;
+ }
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/MetricStatisticsProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/MetricStatisticsProvider.java?rev=1716208&r1=1716207&r2=1716208&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/MetricStatisticsProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/metric/MetricStatisticsProvider.java
Tue Nov 24 16:56:30 2015
@@ -138,7 +138,7 @@ public class MetricStatisticsProvider im
if (NOOPS_TYPES.contains(name)) {
stats = delegate;
} else {
- stats = builder.newComposite(delegate, registry, name);
+ stats = builder.newComposite(delegate, this, name);
}
statsRegistry.put(type, stats);
@@ -154,20 +154,25 @@ public class MetricStatisticsProvider im
private void registerAverages() {
registry.register(typeToName(Type.QUERY_AVERAGE),
- new AvgGauge(registry.meter(typeToName(Type.QUERY_COUNT)),
- registry.timer(typeToName(Type.QUERY_DURATION))));
+ new AvgGauge(compStats(Type.QUERY_COUNT,
StatsBuilder.METERS).getMeter(),
+ compStats(Type.QUERY_DURATION,
StatsBuilder.TIMERS).getTimer()));
registry.register(typeToName(Type.OBSERVATION_EVENT_AVERAGE),
- new
AvgGauge(registry.meter(typeToName(Type.OBSERVATION_EVENT_COUNTER)),
-
registry.timer(typeToName(Type.OBSERVATION_EVENT_DURATION))));
+ new AvgGauge(compStats(Type.OBSERVATION_EVENT_COUNTER,
StatsBuilder.METERS).getMeter(),
+ compStats(Type.OBSERVATION_EVENT_DURATION,
StatsBuilder.TIMERS).getTimer()));
+ }
+
+ private CompositeStats compStats(Type type, StatsBuilder builder){
+ Stats stats = getStats(typeToName(type), builder);
+ return (CompositeStats) stats;
}
@SuppressWarnings("unused")
private interface StatsBuilder<T extends Stats> {
StatsBuilder<CounterStats> COUNTERS = new StatsBuilder<CounterStats>()
{
@Override
- public CompositeStats newComposite(SimpleStats delegate,
MetricRegistry registry,String name) {
- return new CompositeStats(delegate, new
MetricCounterStats(registry.counter(name)));
+ public CompositeStats newComposite(SimpleStats delegate,
MetricStatisticsProvider provider,String name) {
+ return new CompositeStats(delegate,
provider.registry.counter(name));
}
@Override
@@ -178,8 +183,8 @@ public class MetricStatisticsProvider im
StatsBuilder<MeterStats> METERS = new StatsBuilder<MeterStats>() {
@Override
- public CompositeStats newComposite(SimpleStats delegate,
MetricRegistry registry,String name) {
- return new CompositeStats(delegate, new
MetricMeterStats(registry.meter(name)));
+ public CompositeStats newComposite(SimpleStats delegate,
MetricStatisticsProvider provider,String name) {
+ return new CompositeStats(delegate,
provider.registry.meter(name));
}
@Override
@@ -191,8 +196,8 @@ public class MetricStatisticsProvider im
StatsBuilder<TimerStats> TIMERS = new StatsBuilder<TimerStats>() {
@Override
- public CompositeStats newComposite(SimpleStats delegate,
MetricRegistry registry,String name) {
- return new CompositeStats(delegate, new
MetricTimerStats(registry.timer(name)));
+ public CompositeStats newComposite(SimpleStats delegate,
MetricStatisticsProvider provider,String name) {
+ return new CompositeStats(delegate,
provider.registry.timer(name));
}
@Override
@@ -201,7 +206,7 @@ public class MetricStatisticsProvider im
}
};
- CompositeStats newComposite(SimpleStats delegate, MetricRegistry
registry,String name);
+ CompositeStats newComposite(SimpleStats delegate,
MetricStatisticsProvider provider,String name);
boolean isInstance(Stats stats);
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStatsTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStatsTest.java?rev=1716208&r1=1716207&r2=1716208&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStatsTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/metric/CompositeStatsTest.java
Tue Nov 24 16:56:30 2015
@@ -22,6 +22,7 @@ package org.apache.jackrabbit.oak.plugin
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
+import com.codahale.metrics.Counter;
import com.codahale.metrics.Meter;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Timer;
@@ -39,7 +40,7 @@ public class CompositeStatsTest {
@Test
public void counter() throws Exception {
- MetricCounterStats counter = new
MetricCounterStats(registry.counter("test"));
+ Counter counter = registry.counter("test");
CounterStats counterStats = new CompositeStats(simpleStats, counter);
counterStats.inc();
@@ -59,7 +60,7 @@ public class CompositeStatsTest {
@Test
public void meter() throws Exception {
Meter meter = registry.meter("test");
- MeterStats meterStats = new CompositeStats(simpleStats, new
MetricMeterStats(meter));
+ MeterStats meterStats = new CompositeStats(simpleStats, meter);
meterStats.mark();
assertEquals(1, simpleStats.getCount());
@@ -73,7 +74,7 @@ public class CompositeStatsTest {
@Test
public void timer() throws Exception {
Timer time = registry.timer("test");
- TimerStats timerStats = new CompositeStats(simpleStats, new
MetricTimerStats(time));
+ TimerStats timerStats = new CompositeStats(simpleStats, time);
timerStats.update(100, TimeUnit.SECONDS);
assertEquals(1, time.getCount());