Search in sources :

Example 1 with Meter

use of io.micrometer.core.instrument.Meter in project resilience4j by resilience4j.

the class CircuitBreakerMetricsTest method shouldRegisterMetrics.

@Test
public void shouldRegisterMetrics() {
    CircuitBreakerRegistry circuitBreakerRegistry = CircuitBreakerRegistry.ofDefaults();
    circuitBreakerRegistry.circuitBreaker("testName");
    CircuitBreakerMetrics circuitBreakerMetrics = CircuitBreakerMetrics.ofCircuitBreakerRegistry(circuitBreakerRegistry);
    circuitBreakerMetrics.bindTo(meterRegistry);
    final List<String> metricNames = meterRegistry.getMeters().stream().map(Meter::getId).map(Meter.Id::getName).collect(Collectors.toList());
    final List<String> expectedMetrics = newArrayList("resilience4j.circuitbreaker.testName.successful", "resilience4j.circuitbreaker.testName.failed", "resilience4j.circuitbreaker.testName.not_permitted", "resilience4j.circuitbreaker.testName.state", "resilience4j.circuitbreaker.testName.buffered", "resilience4j.circuitbreaker.testName.buffered_max");
    assertThat(metricNames).hasSameElementsAs(expectedMetrics);
}
Also used : Meter(io.micrometer.core.instrument.Meter) CircuitBreakerRegistry(io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry) Test(org.junit.Test)

Example 2 with Meter

use of io.micrometer.core.instrument.Meter in project resilience4j by resilience4j.

the class RateLimiterMetricsTest method shouldRegisterMetrics.

@Test
public void shouldRegisterMetrics() {
    RateLimiterRegistry rateLimiterRegistry = RateLimiterRegistry.ofDefaults();
    rateLimiterRegistry.rateLimiter("testName");
    RateLimiterMetrics rateLimiterMetrics = RateLimiterMetrics.ofRateLimiterRegistry(rateLimiterRegistry);
    rateLimiterMetrics.bindTo(meterRegistry);
    final List<String> metricNames = meterRegistry.getMeters().stream().map(Meter::getId).map(Meter.Id::getName).collect(Collectors.toList());
    final List<String> expectedMetrics = newArrayList("resilience4j.ratelimiter.testName.available_permissions", "resilience4j.ratelimiter.testName.number_of_waiting_threads");
    assertThat(metricNames).hasSameElementsAs(expectedMetrics);
}
Also used : Meter(io.micrometer.core.instrument.Meter) RateLimiterRegistry(io.github.resilience4j.ratelimiter.RateLimiterRegistry) Test(org.junit.Test)

Example 3 with Meter

use of io.micrometer.core.instrument.Meter in project spring-cloud-stream by spring-cloud.

the class DefaultDestinationPublishingMeterRegistry method publish.

protected void publish() {
    List<Metric<Number>> aggregatedMeters = new ArrayList<>();
    for (Meter meter : this.getMeters()) {
        if (meter instanceof Timer) {
            aggregatedMeters.add(toTimerMetric((Timer) meter));
        } else if (meter instanceof DistributionSummary) {
            aggregatedMeters.add(toSummaryMetric((DistributionSummary) meter));
        }
    }
    if (!aggregatedMeters.isEmpty()) {
        ApplicationMetrics metrics = new ApplicationMetrics(this.applicationProperties.getKey(), aggregatedMeters);
        metrics.setProperties(this.applicationProperties.getExportProperties());
        try {
            String jsonString = this.objectMapper.writeValueAsString(metrics);
            this.metricsConsumer.accept(jsonString);
        } catch (JsonProcessingException e) {
            logger.warn("Error producing JSON String representation metric data", e);
        }
    }
}
Also used : CumulativeDistributionSummary(io.micrometer.core.instrument.cumulative.CumulativeDistributionSummary) DistributionSummary(io.micrometer.core.instrument.DistributionSummary) LongTaskTimer(io.micrometer.core.instrument.LongTaskTimer) CumulativeTimer(io.micrometer.core.instrument.cumulative.CumulativeTimer) Timer(io.micrometer.core.instrument.Timer) FunctionTimer(io.micrometer.core.instrument.FunctionTimer) CumulativeFunctionTimer(io.micrometer.core.instrument.cumulative.CumulativeFunctionTimer) DefaultLongTaskTimer(io.micrometer.core.instrument.internal.DefaultLongTaskTimer) Meter(io.micrometer.core.instrument.Meter) DefaultMeter(io.micrometer.core.instrument.internal.DefaultMeter) ArrayList(java.util.ArrayList) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException)

Example 4 with Meter

use of io.micrometer.core.instrument.Meter in project spring-boot by spring-projects.

the class ConnectionPoolMetricsAutoConfigurationTests method connectionPoolExposedAsConnectionFactoryTypeIsInstrumented.

@Test
void connectionPoolExposedAsConnectionFactoryTypeIsInstrumented() {
    this.contextRunner.withUserConfiguration(ConnectionFactoryConfiguration.class).run((context) -> {
        MeterRegistry registry = context.getBean(MeterRegistry.class);
        assertThat(registry.find("r2dbc.pool.acquired").gauges()).extracting(Meter::getId).extracting((id) -> id.getTag("name")).containsExactly("testConnectionPool");
    });
}
Also used : ConnectionFactory(io.r2dbc.spi.ConnectionFactory) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) AutoConfigurations(org.springframework.boot.autoconfigure.AutoConfigurations) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) MetricsRun(org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun) H2ConnectionOption(io.r2dbc.h2.H2ConnectionOption) ConnectionPoolConfiguration(io.r2dbc.pool.ConnectionPoolConfiguration) Meter(io.micrometer.core.instrument.Meter) ApplicationContextRunner(org.springframework.boot.test.context.runner.ApplicationContextRunner) UUID(java.util.UUID) ConnectionPool(io.r2dbc.pool.ConnectionPool) Test(org.junit.jupiter.api.Test) Configuration(org.springframework.context.annotation.Configuration) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) H2ConnectionFactory(io.r2dbc.h2.H2ConnectionFactory) R2dbcAutoConfiguration(org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration) Bean(org.springframework.context.annotation.Bean) Collections(java.util.Collections) CloseableConnectionFactory(io.r2dbc.h2.CloseableConnectionFactory) Meter(io.micrometer.core.instrument.Meter) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Test(org.junit.jupiter.api.Test)

Example 5 with Meter

use of io.micrometer.core.instrument.Meter in project spring-boot by spring-projects.

the class WebMvcMetricsAutoConfigurationTests method timerWorksWithTimedAnnotationsWhenAutoTimeRequestsIsFalse.

@Test
void timerWorksWithTimedAnnotationsWhenAutoTimeRequestsIsFalse() {
    this.contextRunner.withUserConfiguration(TestController.class).withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class, WebMvcAutoConfiguration.class)).withPropertyValues("management.metrics.web.server.request.autotime.enabled=false").run((context) -> {
        MeterRegistry registry = getInitializedMeterRegistry(context, "/test3");
        Collection<Meter> meters = registry.get("http.server.requests").meters();
        assertThat(meters).hasSize(1);
        Meter meter = meters.iterator().next();
        assertThat(meter.getId().getTag("uri")).isEqualTo("/test3");
    });
}
Also used : WebMvcAutoConfiguration(org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration) MetricsAutoConfiguration(org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration) Meter(io.micrometer.core.instrument.Meter) TestController(org.springframework.boot.actuate.autoconfigure.metrics.web.TestController) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Test(org.junit.jupiter.api.Test)

Aggregations

Meter (io.micrometer.core.instrument.Meter)16 MeterRegistry (io.micrometer.core.instrument.MeterRegistry)6 Test (org.junit.Test)5 Test (org.junit.jupiter.api.Test)5 ArrayList (java.util.ArrayList)4 Gauge (io.micrometer.core.instrument.Gauge)3 DefaultMeter (io.micrometer.core.instrument.internal.DefaultMeter)3 Collections (java.util.Collections)3 DistributionSummary (io.micrometer.core.instrument.DistributionSummary)2 FunctionTimer (io.micrometer.core.instrument.FunctionTimer)2 LongTaskTimer (io.micrometer.core.instrument.LongTaskTimer)2 Timer (io.micrometer.core.instrument.Timer)2 DefaultLongTaskTimer (io.micrometer.core.instrument.internal.DefaultLongTaskTimer)2 HashMap (java.util.HashMap)2 List (java.util.List)2 Map (java.util.Map)2 TimeUnit (java.util.concurrent.TimeUnit)2 JsonGenerator (com.fasterxml.jackson.core.JsonGenerator)1 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 Get (com.linecorp.armeria.server.annotation.Get)1