Skip to content

Commit 73fd760

Browse files
izeyebclozel
authored andcommitted
Polish HTTP client observability changes
See gh-32484 See gh-32518 Closes gh-32636
1 parent 23a9818 commit 73fd760

File tree

8 files changed

+15
-20
lines changed

8 files changed

+15
-20
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/HttpClientObservationsAutoConfiguration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public class HttpClientObservationsAutoConfiguration {
5858
@Configuration(proxyBeanMethods = false)
5959
@ConditionalOnClass(MeterRegistry.class)
6060
@ConditionalOnBean(MeterRegistry.class)
61-
class MeterFilterConfiguration {
61+
static class MeterFilterConfiguration {
6262

6363
@Bean
6464
@Order(0)

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateObservationConfiguration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
class RestTemplateObservationConfiguration {
4545

4646
@Bean
47-
ObservationRestTemplateCustomizer metricsRestTemplateCustomizer(ObservationRegistry observationRegistry,
47+
ObservationRestTemplateCustomizer observationRestTemplateCustomizer(ObservationRegistry observationRegistry,
4848
ObservationProperties observationProperties, MetricsProperties metricsProperties,
4949
ObjectProvider<RestTemplateExchangeTagsProvider> optionalTagsProvider) {
5050
String metricName = metricsProperties.getWeb().getClient().getRequest().getMetricName();

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/WebClientObservationConfiguration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
class WebClientObservationConfiguration {
4242

4343
@Bean
44-
ObservationWebClientCustomizer metricsWebClientCustomizer(ObservationRegistry observationRegistry,
44+
ObservationWebClientCustomizer observationWebClientCustomizer(ObservationRegistry observationRegistry,
4545
ObservationProperties observationProperties,
4646
ObjectProvider<WebClientExchangeTagsProvider> optionalTagsProvider, MetricsProperties metricsProperties) {
4747
String metricName = metricsProperties.getWeb().getClient().getRequest().getMetricName();

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/ClientObservationConventionAdapterTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ void shouldUseConfiguredName() {
6565
}
6666

6767
@Test
68-
void shouldOnlySupportClientHttpObservationContext() {
68+
void shouldOnlySupportClientObservationContext() {
6969
assertThat(this.convention.supportsContext(this.context)).isTrue();
7070
assertThat(this.convention.supportsContext(new OtherContext())).isFalse();
7171
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateObservationConfigurationTests.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,8 @@ void afterMaxUrisReachedFurtherUrisAreDenied(CapturedOutput output) {
139139
@Test
140140
void backsOffWhenRestTemplateBuilderIsMissing() {
141141
new ApplicationContextRunner().with(MetricsRun.simple())
142-
.withConfiguration(AutoConfigurations.of(HttpClientObservationsAutoConfiguration.class))
142+
.withConfiguration(AutoConfigurations.of(ObservationAutoConfiguration.class,
143+
HttpClientObservationsAutoConfiguration.class))
143144
.run((context) -> assertThat(context).doesNotHaveBean(DefaultRestTemplateExchangeTagsProvider.class)
144145
.doesNotHaveBean(ObservationRestTemplateCustomizer.class));
145146
}

spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/ObservationRestTemplateCustomizerTests.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,11 @@
1616

1717
package org.springframework.boot.actuate.metrics.web.client;
1818

19-
import io.micrometer.observation.ObservationConvention;
2019
import io.micrometer.observation.ObservationRegistry;
2120
import io.micrometer.observation.tck.TestObservationRegistry;
2221
import org.junit.jupiter.api.Test;
2322

2423
import org.springframework.http.client.observation.DefaultClientHttpObservationConvention;
25-
import org.springframework.test.util.ReflectionTestUtils;
2624
import org.springframework.web.client.RestTemplate;
2725

2826
import static org.assertj.core.api.Assertions.assertThat;
@@ -46,11 +44,10 @@ class ObservationRestTemplateCustomizerTests {
4644
@Test
4745
void shouldCustomizeObservationConfiguration() {
4846
this.customizer.customize(this.restTemplate);
49-
assertThat((ObservationRegistry) ReflectionTestUtils.getField(this.restTemplate, "observationRegistry"))
50-
.isEqualTo(this.observationRegistry);
51-
assertThat((ObservationConvention<?>) ReflectionTestUtils.getField(this.restTemplate, "observationConvention"))
52-
.isInstanceOf(DefaultClientHttpObservationConvention.class).extracting("name")
53-
.isEqualTo(TEST_METRIC_NAME);
47+
assertThat(this.restTemplate).hasFieldOrPropertyWithValue("observationRegistry", this.observationRegistry);
48+
assertThat(this.restTemplate).extracting("observationConvention")
49+
.isInstanceOf(DefaultClientHttpObservationConvention.class)
50+
.hasFieldOrPropertyWithValue("name", TEST_METRIC_NAME);
5451
}
5552

5653
}

spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/reactive/client/ObservationWebClientCustomizerTests.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,9 @@
1616

1717
package org.springframework.boot.actuate.metrics.web.reactive.client;
1818

19-
import io.micrometer.observation.ObservationConvention;
20-
import io.micrometer.observation.ObservationRegistry;
2119
import io.micrometer.observation.tck.TestObservationRegistry;
2220
import org.junit.jupiter.api.Test;
2321

24-
import org.springframework.test.util.ReflectionTestUtils;
2522
import org.springframework.web.reactive.function.client.ClientObservationConvention;
2623
import org.springframework.web.reactive.function.client.DefaultClientObservationConvention;
2724
import org.springframework.web.reactive.function.client.WebClient;
@@ -51,10 +48,10 @@ class ObservationWebClientCustomizerTests {
5148
@Test
5249
void shouldCustomizeObservationConfiguration() {
5350
this.customizer.customize(this.clientBuilder);
54-
assertThat((ObservationRegistry) ReflectionTestUtils.getField(this.clientBuilder, "observationRegistry"))
55-
.isEqualTo(this.observationRegistry);
56-
assertThat((ObservationConvention<?>) ReflectionTestUtils.getField(this.clientBuilder, "observationConvention"))
57-
.isInstanceOf(DefaultClientObservationConvention.class).extracting("name").isEqualTo(TEST_METRIC_NAME);
51+
assertThat(this.clientBuilder).hasFieldOrPropertyWithValue("observationRegistry", this.observationRegistry);
52+
assertThat(this.clientBuilder).extracting("observationConvention")
53+
.isInstanceOf(DefaultClientObservationConvention.class)
54+
.hasFieldOrPropertyWithValue("name", TEST_METRIC_NAME);
5855
}
5956

6057
}

spring-boot-project/spring-boot-docs/src/docs/asciidoc/actuator/metrics.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -862,7 +862,7 @@ For that, you have to inject the auto-configured builder and use it to create in
862862
* `RestTemplateBuilder` for `RestTemplate`
863863
* `WebClient.Builder` for `WebClient`
864864

865-
You can also manually apply the customizers responsible for this instrumentation, namely `ObservationRestTemplateCustomizer` and `MetricsWebClientCustomizer`.
865+
You can also manually apply the customizers responsible for this instrumentation, namely `ObservationRestTemplateCustomizer` and `ObservationWebClientCustomizer`.
866866

867867
By default, metrics are generated with the name, `http.client.requests`.
868868
You can customize the name by setting the configprop:management.observations.http.client.requests.name[] property.

0 commit comments

Comments
 (0)