After upgrade to Spring Boot 2.7.0 MVC metrics stop working.
What I've found is that webMvcMetricsFilter is not created.
There is new @ConditionalOnMissingBean annotation added In WebMvcMetricsAutoConfiguration:
@Bean
@ConditionalOnMissingBean
public FilterRegistrationBean<WebMvcMetricsFilter> webMvcMetricsFilter(MeterRegistry registry,
WebMvcTagsProvider tagsProvider) {
Unfortunately, when using property server.forward-headers-strategy=framework other bean forwardedHeaderFilter is created and webMvcMetricsFilter is not called.
However ForwardedHeaderFilterConfiguration uses more precise @ConditionalOnMissingFilterBean(ForwardedHeaderFilter.class) annotation:
@Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(value = "server.forward-headers-strategy", havingValue = "framework")
@ConditionalOnMissingFilterBean(ForwardedHeaderFilter.class)
static class ForwardedHeaderFilterConfiguration {
So, as temporary solution, I've created webMvcMetricsFilter manually in my project.
But looks like webMvcMetricsFilter should be annotated with something like this: @ConditionalOnMissingFilterBean(WebMvcMetricsFilter.class) instead of simple @ConditionalOnMissingBean
Comment From: wilkinsona
Duplicates https://github.com/spring-projects/spring-boot/issues/31150.