From 29e8beeeebd9c8806fbfe91165addad300408bfb Mon Sep 17 00:00:00 2001 From: Nathan Date: Tue, 8 Jun 2021 20:31:43 -0500 Subject: [PATCH] Bug work around for https://github.com/spring-projects/spring-boot/issues/26630 --- .../rahmnathan/localmovie/config/BeanProducer.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/com/github/rahmnathan/localmovie/config/BeanProducer.java b/src/main/java/com/github/rahmnathan/localmovie/config/BeanProducer.java index 2203ae9..e360384 100644 --- a/src/main/java/com/github/rahmnathan/localmovie/config/BeanProducer.java +++ b/src/main/java/com/github/rahmnathan/localmovie/config/BeanProducer.java @@ -6,13 +6,18 @@ import com.github.rahmnathan.omdb.boundary.MediaProvider; import com.github.rahmnathan.omdb.boundary.MediaProviderOmdb; import com.github.rahmnathan.omdb.boundary.MediaProviderStub; +import io.micrometer.core.instrument.MeterRegistry; import lombok.AllArgsConstructor; import org.apache.camel.CamelContext; import org.apache.camel.ProducerTemplate; +import org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties; +import org.springframework.boot.actuate.metrics.data.MetricsRepositoryMethodInvocationListener; +import org.springframework.boot.actuate.metrics.data.RepositoryTagsProvider; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import java.util.Set; @@ -44,4 +49,13 @@ public MediaProvider createMovieProvider(CamelContext context, ProducerTemplate return new MediaProviderStub(); } + + // Attempt to fix metrics bug https://github.com/spring-projects/spring-boot/issues/26630 + @Bean + public static MetricsRepositoryMethodInvocationListener metricsRepositoryMethodInvocationListener( + MetricsProperties metricsProperties, @Lazy MeterRegistry registry, RepositoryTagsProvider tagsProvider) { + MetricsProperties.Data.Repository properties = metricsProperties.getData().getRepository(); + return new MetricsRepositoryMethodInvocationListener(registry, tagsProvider, properties.getMetricName(), + properties.getAutotime()); + } }