From 7bee9dfc2202bc37116d8e4511f6301d82c5becd Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Fri, 31 Aug 2018 14:02:20 +0200 Subject: [PATCH] Harmonize HTTP client metrics This commit harmonizes the auto-configurations for RestTemplate and WebClient in a single `HttpClientMetricsAutoConfiguration`. Doing so allows to give a better scope for the shared `MeterFilter`. As a result`WebClientMetricsAutoConfiguration` has moved to the `client` package. Closes gh-14269 --- ...> HttpClientMetricsAutoConfiguration.java} | 38 +++--------- .../RestTemplateMetricsConfiguration.java | 61 +++++++++++++++++++ .../WebClientMetricsConfiguration.java} | 25 ++------ .../main/resources/META-INF/spring.factories | 3 +- .../metrics/test/MetricsIntegrationTests.java | 4 +- .../metrics/test/MetricsRun.java | 6 +- ...estTemplateMetricsConfigurationTests.java} | 8 +-- .../WebClientMetricsConfigurationTests.java} | 11 ++-- 8 files changed, 90 insertions(+), 66 deletions(-) rename spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/{RestTemplateMetricsAutoConfiguration.java => HttpClientMetricsAutoConfiguration.java} (61%) create mode 100644 spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.java rename spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/{reactive/WebClientMetricsAutoConfiguration.java => client/WebClientMetricsConfiguration.java} (60%) rename spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/{RestTemplateMetricsAutoConfigurationTests.java => RestTemplateMetricsConfigurationTests.java} (95%) rename spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/{reactive/WebClientMetricsAutoConfigurationTests.java => client/WebClientMetricsConfigurationTests.java} (93%) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/HttpClientMetricsAutoConfiguration.java similarity index 61% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsAutoConfiguration.java rename to spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/HttpClientMetricsAutoConfiguration.java index 694d65144c8..5c269941b81 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/HttpClientMetricsAutoConfiguration.java @@ -23,62 +23,44 @@ import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfigu import org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties; import org.springframework.boot.actuate.autoconfigure.metrics.OnlyOnceLoggingDenyMeterFilter; import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration; -import org.springframework.boot.actuate.metrics.web.client.DefaultRestTemplateExchangeTagsProvider; -import org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer; -import org.springframework.boot.actuate.metrics.web.client.RestTemplateExchangeTagsProvider; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.core.annotation.Order; -import org.springframework.web.client.RestTemplate; /** - * {@link EnableAutoConfiguration Auto-configuration} for {@link RestTemplate}-related - * metrics. + * {@link EnableAutoConfiguration Auto-configuration} for HTTP client-related metrics. * * @author Jon Schneider * @author Phillip Webb - * @since 2.0.0 + * @author Stephane Nicoll + * @since 2.1.0 */ @Configuration -@AutoConfigureAfter({ MetricsAutoConfiguration.class, RestTemplateAutoConfiguration.class, +@AutoConfigureAfter({ MetricsAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class }) -@ConditionalOnClass(RestTemplate.class) +@ConditionalOnClass(MeterRegistry.class) @ConditionalOnBean(MeterRegistry.class) -public class RestTemplateMetricsAutoConfiguration { +@Import({ RestTemplateMetricsConfiguration.class, WebClientMetricsConfiguration.class }) +public class HttpClientMetricsAutoConfiguration { private final MetricsProperties properties; - public RestTemplateMetricsAutoConfiguration(MetricsProperties properties) { + public HttpClientMetricsAutoConfiguration(MetricsProperties properties) { this.properties = properties; } - @Bean - @ConditionalOnMissingBean(RestTemplateExchangeTagsProvider.class) - public DefaultRestTemplateExchangeTagsProvider restTemplateTagConfigurer() { - return new DefaultRestTemplateExchangeTagsProvider(); - } - - @Bean - public MetricsRestTemplateCustomizer metricsRestTemplateCustomizer( - MeterRegistry meterRegistry, - RestTemplateExchangeTagsProvider restTemplateTagConfigurer) { - return new MetricsRestTemplateCustomizer(meterRegistry, restTemplateTagConfigurer, - this.properties.getWeb().getClient().getRequestsMetricName()); - } - @Bean @Order(0) public MeterFilter metricsHttpClientUriTagFilter() { String metricName = this.properties.getWeb().getClient().getRequestsMetricName(); MeterFilter denyFilter = new OnlyOnceLoggingDenyMeterFilter(() -> String .format("Reached the maximum number of URI tags for '%s'. Are you using " - + "'uriVariables' on RestTemplate calls?", metricName)); + + "'uriVariables'?", metricName)); return MeterFilter.maximumAllowableTags(metricName, "uri", this.properties.getWeb().getClient().getMaxUriTags(), denyFilter); } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.java new file mode 100644 index 00000000000..0225d834be8 --- /dev/null +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.java @@ -0,0 +1,61 @@ +/* + * Copyright 2012-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.actuate.autoconfigure.metrics.web.client; + +import io.micrometer.core.instrument.MeterRegistry; + +import org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties; +import org.springframework.boot.actuate.metrics.web.client.DefaultRestTemplateExchangeTagsProvider; +import org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer; +import org.springframework.boot.actuate.metrics.web.client.RestTemplateExchangeTagsProvider; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +/** + * Configure the instrumentation of {@link RestTemplate}. + * + * @author Jon Schneider + * @author Phillip Webb + */ +@Configuration +@ConditionalOnClass(RestTemplate.class) +class RestTemplateMetricsConfiguration { + + private final MetricsProperties properties; + + RestTemplateMetricsConfiguration(MetricsProperties properties) { + this.properties = properties; + } + + @Bean + @ConditionalOnMissingBean(RestTemplateExchangeTagsProvider.class) + public DefaultRestTemplateExchangeTagsProvider restTemplateTagConfigurer() { + return new DefaultRestTemplateExchangeTagsProvider(); + } + + @Bean + public MetricsRestTemplateCustomizer metricsRestTemplateCustomizer( + MeterRegistry meterRegistry, + RestTemplateExchangeTagsProvider restTemplateTagConfigurer) { + return new MetricsRestTemplateCustomizer(meterRegistry, restTemplateTagConfigurer, + this.properties.getWeb().getClient().getRequestsMetricName()); + } + +} diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/reactive/WebClientMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/WebClientMetricsConfiguration.java similarity index 60% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/reactive/WebClientMetricsAutoConfiguration.java rename to spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/WebClientMetricsConfiguration.java index c156497214e..fcf19f52c5e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/reactive/WebClientMetricsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/WebClientMetricsConfiguration.java @@ -14,46 +14,29 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.metrics.web.reactive; +package org.springframework.boot.actuate.autoconfigure.metrics.web.client; import io.micrometer.core.instrument.MeterRegistry; -import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties; -import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsAutoConfiguration; import org.springframework.boot.actuate.metrics.web.reactive.client.DefaultWebClientExchangeTagsProvider; import org.springframework.boot.actuate.metrics.web.reactive.client.MetricsWebClientCustomizer; import org.springframework.boot.actuate.metrics.web.reactive.client.WebClientExchangeTagsProvider; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.reactive.function.client.WebClient; /** - * {@link EnableAutoConfiguration Auto-configuration} for instrumentation of - * {@link org.springframework.web.reactive.function.client.WebClient}. - *

- * This is reusing the {@link io.micrometer.core.instrument.config.MeterFilter} defined in - * {@link RestTemplateMetricsAutoConfiguration} for limiting the cardinality of "uri" - * tags. + * Configure the instrumentation of {@link WebClient}. * * @author Brian Clozel - * @since 2.1.0 + * @author Stephane Nicoll */ @Configuration @ConditionalOnClass(WebClient.class) -@AutoConfigureAfter({ MetricsAutoConfiguration.class, - SimpleMetricsExportAutoConfiguration.class }) -@AutoConfigureBefore(WebClientAutoConfiguration.class) -@ConditionalOnBean(MeterRegistry.class) -public class WebClientMetricsAutoConfiguration { +class WebClientMetricsConfiguration { @Bean @ConditionalOnMissingBean diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories index 94fac42c97e..5bc20706747 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories @@ -52,8 +52,7 @@ org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetri org.springframework.boot.actuate.autoconfigure.metrics.export.wavefront.WavefrontMetricsExportAutoConfiguration,\ org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration,\ org.springframework.boot.actuate.autoconfigure.metrics.orm.jpa.HibernateMetricsAutoConfiguration,\ -org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsAutoConfiguration,\ -org.springframework.boot.actuate.autoconfigure.metrics.web.reactive.WebClientMetricsAutoConfiguration,\ +org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration,\ org.springframework.boot.actuate.autoconfigure.metrics.web.reactive.WebFluxMetricsAutoConfiguration,\ org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration,\ org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration,\ diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java index 08a688e54df..60f5e5b0477 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java @@ -39,7 +39,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.amqp.RabbitMetrics import org.springframework.boot.actuate.autoconfigure.metrics.cache.CacheMetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.orm.jpa.HibernateMetricsAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsAutoConfiguration; +import org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.web.reactive.WebFluxMetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration; import org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter; @@ -143,7 +143,7 @@ public class MetricsIntegrationTests { RabbitMetricsAutoConfiguration.class, CacheMetricsAutoConfiguration.class, DataSourcePoolMetricsAutoConfiguration.class, HibernateMetricsAutoConfiguration.class, - RestTemplateMetricsAutoConfiguration.class, + HttpClientMetricsAutoConfiguration.class, WebFluxMetricsAutoConfiguration.class, WebMvcMetricsAutoConfiguration.class, JacksonAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class, RestTemplateAutoConfiguration.class, WebMvcAutoConfiguration.class, diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsRun.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsRun.java index dfd8e7bf8a2..a53f206e967 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsRun.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsRun.java @@ -38,8 +38,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.Simp import org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetricsExportAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.orm.jpa.HibernateMetricsAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.metrics.web.reactive.WebClientMetricsAutoConfiguration; +import org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.web.reactive.WebFluxMetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -78,8 +77,7 @@ public final class MetricsRun { RabbitMetricsAutoConfiguration.class, CacheMetricsAutoConfiguration.class, DataSourcePoolMetricsAutoConfiguration.class, HibernateMetricsAutoConfiguration.class, - RestTemplateMetricsAutoConfiguration.class, - WebClientMetricsAutoConfiguration.class, + HttpClientMetricsAutoConfiguration.class, WebFluxMetricsAutoConfiguration.class, WebMvcMetricsAutoConfiguration.class); private MetricsRun() { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfigurationTests.java similarity index 95% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsAutoConfigurationTests.java rename to spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfigurationTests.java index 9b85a821d2d..bd8f1a7a8fe 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfigurationTests.java @@ -37,12 +37,12 @@ import static org.springframework.test.web.client.match.MockRestRequestMatchers. import static org.springframework.test.web.client.response.MockRestResponseCreators.withStatus; /** - * Tests for {@link RestTemplateMetricsAutoConfiguration}. + * Tests for {@link RestTemplateMetricsConfiguration}. * * @author Stephane Nicoll * @author Jon Schneider */ -public class RestTemplateMetricsAutoConfigurationTests { +public class RestTemplateMetricsConfigurationTests { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .with(MetricsRun.simple()).withConfiguration( @@ -82,8 +82,8 @@ public class RestTemplateMetricsAutoConfigurationTests { assertThat(registry.get("http.client.requests").meters()).hasSize(2); assertThat(this.out.toString()).contains( "Reached the maximum number of URI tags for 'http.client.requests'."); - assertThat(this.out.toString()).contains( - "Are you using 'uriVariables' on RestTemplate calls?"); + assertThat(this.out.toString()) + .contains("Are you using 'uriVariables'?"); }); } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/reactive/WebClientMetricsAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/WebClientMetricsConfigurationTests.java similarity index 93% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/reactive/WebClientMetricsAutoConfigurationTests.java rename to spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/WebClientMetricsConfigurationTests.java index d32efe9c64b..0d23febf7ca 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/reactive/WebClientMetricsAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/WebClientMetricsConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.metrics.web.reactive; +package org.springframework.boot.actuate.autoconfigure.metrics.web.client; import io.micrometer.core.instrument.MeterRegistry; import org.junit.Before; @@ -42,11 +42,11 @@ import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; /** - * Tests for {@link WebClientMetricsAutoConfiguration} + * Tests for {@link WebClientMetricsConfiguration} * * @author Brian Clozel */ -public class WebClientMetricsAutoConfigurationTests { +public class WebClientMetricsConfigurationTests { private ApplicationContextRunner contextRunner = new ApplicationContextRunner() .with(MetricsRun.simple()) @@ -103,9 +103,10 @@ public class WebClientMetricsAutoConfigurationTests { } assertThat(registry.get("http.client.requests").meters()) .hasSize(maxUriTags); + assertThat(this.out.toString()).contains( + "Reached the maximum number of URI tags for 'http.client.requests'."); assertThat(this.out.toString()) - .contains("Reached the maximum number of URI tags " - + "for 'http.client.requests'"); + .contains("Are you using 'uriVariables'?"); }); }