use of io.dropwizard.metrics.JmxReporter in project light-4j by networknt.
the class JmxReporterTest method registersMBeansForMetricObjectsUsingProvidedObjectNameFactory.
@Test
public void registersMBeansForMetricObjectsUsingProvidedObjectNameFactory() throws Exception {
ObjectName n = new ObjectName(name + ":name=dummy");
try {
String widgetName = "something";
when(mockObjectNameFactory.createName(any(String.class), any(String.class), any(MetricName.class))).thenReturn(n);
Gauge aGauge = mock(Gauge.class);
when(aGauge.getValue()).thenReturn(1);
JmxReporter reporter = JmxReporter.forRegistry(registry).registerWith(mBeanServer).inDomain(name).createsObjectNamesWith(mockObjectNameFactory).build();
registry.register(widgetName, aGauge);
reporter.start();
verify(mockObjectNameFactory).createName(eq("gauges"), any(String.class), eq(MetricName.build("something")));
// verifyNoMoreInteractions(mockObjectNameFactory);
} finally {
reporter.stop();
if (mBeanServer.isRegistered(n)) {
mBeanServer.unregisterMBean(n);
}
}
}
use of io.dropwizard.metrics.JmxReporter in project light-4j by networknt.
the class JmxReporterTest method objectNameModifyingMBeanServer.
@Test
public void objectNameModifyingMBeanServer() throws Exception {
MBeanServer mockedMBeanServer = mock(MBeanServer.class);
// overwrite the objectName
when(mockedMBeanServer.registerMBean(any(Object.class), any(ObjectName.class))).thenReturn(new ObjectInstance("DOMAIN:key=value", "className"));
MetricRegistry testRegistry = new MetricRegistry();
JmxReporter testJmxReporter = JmxReporter.forRegistry(testRegistry).registerWith(mockedMBeanServer).inDomain(name).build();
testJmxReporter.start();
// should trigger a registerMBean
testRegistry.timer("test");
// should trigger an unregisterMBean with the overwritten objectName = "DOMAIN:key=value"
testJmxReporter.stop();
verify(mockedMBeanServer).unregisterMBean(new ObjectName("DOMAIN:key=value"));
}
Aggregations