Skip to content

Commit

Permalink
Add support for providing a custom MetricRegistry to Codahale and Dro…
Browse files Browse the repository at this point in the history
…pwizard metrics
  • Loading branch information
vladmihalcea committed Oct 14, 2016
1 parent 132431c commit 5caf957
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -72,14 +72,16 @@ public Reservoir newInstance(Class<? extends Metric> metricClass, String metricN
/**
* Init constructor
* @param configurationProperties configuration properties
* @param metricRegistry metric registry
* @param reservoirFactory reservoir factory
* @param callbacks life cycle callbacks
*/
public CodahaleMetrics(ConfigurationProperties configurationProperties,
MetricRegistry metricRegistry,
ReservoirFactory reservoirFactory,
MetricsLifeCycleCallback... callbacks) {
super(configurationProperties);
this.metricRegistry = new MetricRegistry();
this.metricRegistry = metricRegistry;
this.reservoirFactory = reservoirFactory;
this.callbacks.add(new Slf4jMetricReporter().init(configurationProperties, metricRegistry));
this.callbacks.add(new JmxMetricReporter().init(configurationProperties, metricRegistry));
Expand All @@ -88,6 +90,18 @@ public CodahaleMetrics(ConfigurationProperties configurationProperties,
}
}

/**
* Init constructor
* @param configurationProperties configuration properties
* @param reservoirFactory reservoir factory
* @param callbacks life cycle callbacks
*/
public CodahaleMetrics(ConfigurationProperties configurationProperties,
ReservoirFactory reservoirFactory,
MetricsLifeCycleCallback... callbacks) {
this(configurationProperties, new MetricRegistry(), reservoirFactory, callbacks);
}

/**
* {@inheritDoc}
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.vladmihalcea.flexypool.metric.codahale;

import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Reservoir;
import com.vladmihalcea.flexypool.metric.Histogram;
import com.vladmihalcea.flexypool.metric.Metrics;
import com.vladmihalcea.flexypool.metric.Timer;
import com.vladmihalcea.flexypool.common.ConfigurationProperties;
import com.vladmihalcea.flexypool.util.ReflectionUtils;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
Expand All @@ -24,6 +26,9 @@ public class CodahaleMetricsTest {
@Mock
private ConfigurationProperties configurationProperties;

@Mock
private MetricRegistry metricRegistry;

@Mock
private ReservoirFactory reservoirFactory;

Expand All @@ -35,6 +40,12 @@ public void before() {
MockitoAnnotations.initMocks(this);
}

@Test
public void testMetricRegistry() {
CodahaleMetrics codahaleMetrics = new CodahaleMetrics(configurationProperties, metricRegistry, reservoirFactory);
assertSame(metricRegistry, ReflectionUtils.getFieldValue(codahaleMetrics, "metricRegistry"));
}

@Test
public void testHistogram() {
CodahaleMetrics codahaleMetrics = new CodahaleMetrics(configurationProperties, reservoirFactory);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,14 +72,16 @@ public Reservoir newInstance(Class<? extends Metric> metricClass, String metricN
/**
* Init constructor
* @param configurationProperties configuration properties
* @param metricRegistry metric registry
* @param reservoirFactory reservoir factory
* @param callbacks life cycle callbacks
*/
public DropwizardMetrics(ConfigurationProperties configurationProperties,
MetricRegistry metricRegistry,
ReservoirFactory reservoirFactory,
MetricsLifeCycleCallback... callbacks) {
super(configurationProperties);
this.metricRegistry = new MetricRegistry();
this.metricRegistry = metricRegistry;
this.reservoirFactory = reservoirFactory;
this.callbacks.add(new Slf4jMetricReporter().init(configurationProperties, metricRegistry));
this.callbacks.add(new JmxMetricReporter().init(configurationProperties, metricRegistry));
Expand All @@ -88,6 +90,18 @@ public DropwizardMetrics(ConfigurationProperties configurationProperties,
}
}

/**
* Init constructor
* @param configurationProperties configuration properties
* @param reservoirFactory reservoir factory
* @param callbacks life cycle callbacks
*/
public DropwizardMetrics(ConfigurationProperties configurationProperties,
ReservoirFactory reservoirFactory,
MetricsLifeCycleCallback... callbacks) {
this(configurationProperties, new MetricRegistry(), reservoirFactory, callbacks);
}

/**
* {@inheritDoc}
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.vladmihalcea.flexypool.metric.dropwizard;

import io.dropwizard.metrics.Reservoir;
import com.vladmihalcea.flexypool.common.ConfigurationProperties;
import com.vladmihalcea.flexypool.metric.Histogram;
import com.vladmihalcea.flexypool.metric.Metrics;
import com.vladmihalcea.flexypool.metric.Timer;
import com.vladmihalcea.flexypool.common.ConfigurationProperties;
import com.vladmihalcea.flexypool.util.ReflectionUtils;
import io.dropwizard.metrics.MetricRegistry;
import io.dropwizard.metrics.Reservoir;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
Expand All @@ -24,6 +26,9 @@ public class DropwizardMetricsTest {
@Mock
private ConfigurationProperties configurationProperties;

@Mock
private MetricRegistry metricRegistry;

@Mock
private ReservoirFactory reservoirFactory;

Expand All @@ -35,6 +40,12 @@ public void before() {
MockitoAnnotations.initMocks(this);
}

@Test
public void testMetricRegistry() {
DropwizardMetrics dropwizardMetrics = new DropwizardMetrics(configurationProperties, metricRegistry, reservoirFactory);
assertSame(metricRegistry, ReflectionUtils.getFieldValue(dropwizardMetrics, "metricRegistry"));
}

@Test
public void testHistogram() {
DropwizardMetrics dropwizardMetrics = new DropwizardMetrics(configurationProperties, reservoirFactory);
Expand Down

0 comments on commit 5caf957

Please sign in to comment.