Java 类com.codahale.metrics.MetricRegistryListener 实例源码
项目:mongoose-base
文件:CustomMetricRegistry.java
private void notifyListenerOfAddedMetric(
final MetricRegistryListener listener, final Metric metric, final String name
) {
if(metric instanceof Gauge) {
listener.onGaugeAdded(name, (Gauge<?>) metric);
} else if(metric instanceof Counter) {
listener.onCounterAdded(name, (Counter) metric);
} else if(metric instanceof Histogram) {
listener.onHistogramAdded(name, (Histogram) metric);
} else if(metric instanceof Meter) {
listener.onMeterAdded(name, (Meter) metric);
} else if(metric instanceof Timer) {
listener.onTimerAdded(name, (Timer) metric);
} else {
throw new IllegalArgumentException("Unsupported metric type: " + metric.getClass());
}
}
项目:mongoose-base
文件:CustomMetricRegistry.java
private void notifyListenerOfRemovedMetric(
final String name, final Metric metric, final MetricRegistryListener listener
) {
if(metric instanceof Gauge) {
listener.onGaugeRemoved(name);
} else if(metric instanceof Counter) {
listener.onCounterRemoved(name);
} else if(metric instanceof Histogram) {
listener.onHistogramRemoved(name);
} else if(metric instanceof Meter) {
listener.onMeterRemoved(name);
} else if(metric instanceof Timer) {
listener.onTimerRemoved(name);
} else {
throw new IllegalArgumentException("Unsupported metric type: " + metric.getClass());
}
}
项目:stagemonitor
文件:Metric2RegistryTest.java
@Test
public void testWrappingDropwizardMetrics() {
Metric2Registry registry = new Metric2Registry();
MetricRegistryListener listener = Mockito.mock(MetricRegistryListener.class);
registry.getMetricRegistry().addListener(listener);
registry.register(MetricName.name("test").build(), new Gauge<Integer>() {
@Override
public Integer getValue() {
return 1;
}
});
// Verify the underlying Dropwizard listener was called
Mockito.verify(listener).onGaugeAdded(Mockito.eq("test"), Mockito.<Gauge>any());
// Should be able to read the gauge from either registry
Map.Entry<MetricName, Gauge> stagemonitorEntry = registry.getGauges().entrySet().iterator().next();
Map.Entry<String, Gauge> dropwizardEntry = registry.getMetricRegistry().getGauges().entrySet().iterator().next();
assertEquals("test", stagemonitorEntry.getKey().getName());
assertEquals(1,
stagemonitorEntry.getValue().getValue());
assertEquals("test", dropwizardEntry.getKey());
assertEquals(1,
dropwizardEntry.getValue().getValue());
// Unregister should notify Dropwizard listeners
registry.remove(MetricName.name("test").build());
Mockito.verify(listener).onGaugeRemoved(Mockito.eq("test"));
assertEquals(0, registry.getGauges().size());
assertEquals(0, registry.getMetricRegistry().getGauges().size());
}
项目:mongoose-base
文件:CustomMetricRegistry.java
/**
* Creates a new {@link CustomMetricRegistry}.
*/
public CustomMetricRegistry() {
this.metrics = buildMap();
this.listeners = new CopyOnWriteArrayList<MetricRegistryListener>();
}
项目:mongoose-base
文件:CustomMetricRegistry.java
private void onMetricAdded(final String name, final Metric metric) {
for(final MetricRegistryListener listener : listeners) {
notifyListenerOfAddedMetric(listener, metric, name);
}
}
项目:mongoose-base
文件:CustomMetricRegistry.java
private void onMetricRemoved(final String name, final Metric metric) {
for(final MetricRegistryListener listener : listeners) {
notifyListenerOfRemovedMetric(name, metric, listener);
}
}
项目:metrics-plugin
文件:NameRewriterMetricRegistry.java
@Override
public void removeListener(MetricRegistryListener listener) {
throw new UnsupportedOperationException();
}
项目:metrics-plugin
文件:NameRewriterMetricRegistry.java
@Override
public void addListener(MetricRegistryListener listener) {
throw new UnsupportedOperationException();
}
项目:mongoose-base
文件:CustomMetricRegistry.java
/**
* Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
* metric creation. Listeners will be notified in the order in which they are added.
* <p>
* <b>N.B.:</b> The listener will be notified of all existing metrics when it first registers.
*
* @param listener the listener that will be notified
*/
public final void addListener(final MetricRegistryListener listener) {
listeners.add(listener);
for(Map.Entry<String, Metric> entry : metrics.entrySet()) {
notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());
}
}
项目:mongoose-base
文件:CustomMetricRegistry.java
/**
* Removes a {@link MetricRegistryListener} from this registry's collection of listeners.
*
* @param listener the listener that will be removed
*/
public final void removeListener(final MetricRegistryListener listener) {
listeners.remove(listener);
}