use of io.micrometer.core.instrument.composite.CompositeMeterRegistry in project vertx-micrometer-metrics by vert-x3.
the class CustomMicrometerMetricsITest method shouldReportWithCompositeRegistry.
@Test
public void shouldReportWithCompositeRegistry(TestContext context) throws Exception {
// Mock an influxdb server
Async asyncInflux = context.async();
InfluxDbTestHelper.simulateInfluxServer(vertxForSimulatedServer, context, 8087, body -> {
try {
context.verify(w -> assertThat(body).contains("vertx_eventbus_handlers,address=test-eb,metric_type=gauge value=1"));
} finally {
asyncInflux.complete();
}
});
CompositeMeterRegistry myRegistry = new CompositeMeterRegistry();
myRegistry.add(new JmxMeterRegistry(s -> null, Clock.SYSTEM));
myRegistry.add(new InfluxMeterRegistry(new InfluxConfig() {
@Override
public String get(String s) {
return null;
}
@Override
public Duration step() {
return Duration.ofSeconds(1);
}
@Override
public String uri() {
return "http://localhost:8087";
}
@Override
public boolean autoCreateDb() {
return false;
}
}, Clock.SYSTEM));
vertx = Vertx.vertx(new VertxOptions().setMetricsOptions(new MicrometerMetricsOptions().setMicrometerRegistry(myRegistry).setRegistryName(REGITRY_NAME).addDisabledMetricsCategory(MetricsDomain.HTTP_SERVER).addDisabledMetricsCategory(MetricsDomain.NAMED_POOLS).addLabels(Label.EB_ADDRESS).setEnabled(true)));
// Send something on the eventbus and wait til it's received
Async asyncEB = context.async();
vertx.eventBus().consumer("test-eb", msg -> asyncEB.complete());
vertx.eventBus().publish("test-eb", "test message");
asyncEB.await(2000);
// Read MBean
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
assertThat(mbs.getDomains()).contains("metrics");
Number result = (Number) mbs.getAttribute(new ObjectName("metrics", "name", "vertxEventbusHandlers.address.test-eb"), "Value");
assertThat(result).isEqualTo(1d);
// Await influx
asyncInflux.awaitSuccess();
}
use of io.micrometer.core.instrument.composite.CompositeMeterRegistry in project pravega by pravega.
the class StatsProviderTest method testStatsProviderStartWithoutExporting.
@Test
public void testStatsProviderStartWithoutExporting() {
MetricsConfig appConfig = MetricsConfig.builder().with(MetricsConfig.ENABLE_STATISTICS, true).with(MetricsConfig.ENABLE_STATSD_REPORTER, true).with(MetricsConfig.ENABLE_INFLUXDB_REPORTER, true).build();
@Cleanup CompositeMeterRegistry localRegistry = new CompositeMeterRegistry();
@Cleanup StatsProvider statsProvider = new StatsProviderImpl(appConfig, localRegistry);
statsProvider.startWithoutExporting();
for (MeterRegistry registry : localRegistry.getRegistries()) {
assertTrue(registry instanceof SimpleMeterRegistry);
assertFalse(registry instanceof InfluxMeterRegistry);
assertFalse(registry instanceof StatsdMeterRegistry);
}
statsProvider.close();
assertTrue(0 == localRegistry.getRegistries().size());
}
use of io.micrometer.core.instrument.composite.CompositeMeterRegistry in project spring-boot by spring-projects.
the class MetricsEndpointTests method findFirstMatchingMetersFromNestedRegistries.
@Test
void findFirstMatchingMetersFromNestedRegistries() {
CompositeMeterRegistry composite = new CompositeMeterRegistry();
SimpleMeterRegistry firstLevel0 = new SimpleMeterRegistry();
CompositeMeterRegistry firstLevel1 = new CompositeMeterRegistry();
SimpleMeterRegistry secondLevel = new SimpleMeterRegistry();
composite.add(firstLevel0);
composite.add(firstLevel1);
firstLevel1.add(secondLevel);
secondLevel.counter("cache", "result", "hit", "host", "1").increment(2);
secondLevel.counter("cache", "result", "miss", "host", "1").increment(2);
secondLevel.counter("cache", "result", "hit", "host", "2").increment(2);
MetricsEndpoint endpoint = new MetricsEndpoint(composite);
MetricsEndpoint.MetricResponse response = endpoint.metric("cache", Collections.emptyList());
assertThat(response.getName()).isEqualTo("cache");
assertThat(availableTagKeys(response)).containsExactly("result", "host");
assertThat(getCount(response)).hasValue(6.0);
response = endpoint.metric("cache", Collections.singletonList("result:hit"));
assertThat(availableTagKeys(response)).containsExactly("host");
assertThat(getCount(response)).hasValue(4.0);
}
use of io.micrometer.core.instrument.composite.CompositeMeterRegistry in project spring-boot by spring-projects.
the class MeterRegistryConfigurerIntegrationTests method binderMetricsAreSearchableFromTheComposite.
@Test
void binderMetricsAreSearchableFromTheComposite() {
this.contextRunner.run((context) -> {
CompositeMeterRegistry composite = context.getBean(CompositeMeterRegistry.class);
composite.get("jvm.memory.used").gauge();
context.getBeansOfType(MeterRegistry.class).forEach((name, registry) -> registry.get("jvm.memory.used").gauge());
});
}
use of io.micrometer.core.instrument.composite.CompositeMeterRegistry in project spring-boot by spring-projects.
the class MetricsAutoConfigurationIntegrationTests method autoConfiguredCompositeDoesNotHaveMeterFiltersApplied.
@Test
void autoConfiguredCompositeDoesNotHaveMeterFiltersApplied() {
new ApplicationContextRunner().with(MetricsRun.limitedTo(GraphiteMetricsExportAutoConfiguration.class, JmxMetricsExportAutoConfiguration.class)).run((context) -> {
MeterRegistry composite = context.getBean(MeterRegistry.class);
assertThat(composite).extracting("filters", InstanceOfAssertFactories.ARRAY).hasSize(0);
assertThat(composite).isInstanceOf(CompositeMeterRegistry.class);
Set<MeterRegistry> registries = ((CompositeMeterRegistry) composite).getRegistries();
assertThat(registries).hasSize(2);
assertThat(registries).hasAtLeastOneElementOfType(GraphiteMeterRegistry.class).hasAtLeastOneElementOfType(JmxMeterRegistry.class);
assertThat(registries).allSatisfy((registry) -> assertThat(registry).extracting("filters", InstanceOfAssertFactories.ARRAY).hasSize(1));
});
}
Aggregations