Search in sources :

Example 1 with JmxReporter

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);
        }
    }
}
Also used : MetricName(io.dropwizard.metrics.MetricName) JmxReporter(io.dropwizard.metrics.JmxReporter) Gauge(io.dropwizard.metrics.Gauge) Test(org.junit.Test)

Example 2 with JmxReporter

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"));
}
Also used : MetricRegistry(io.dropwizard.metrics.MetricRegistry) JmxReporter(io.dropwizard.metrics.JmxReporter) Test(org.junit.Test)

Aggregations

JmxReporter (io.dropwizard.metrics.JmxReporter)2 Test (org.junit.Test)2 Gauge (io.dropwizard.metrics.Gauge)1 MetricName (io.dropwizard.metrics.MetricName)1 MetricRegistry (io.dropwizard.metrics.MetricRegistry)1