Skip to content

Commit dfdee3e

Browse files
committed
Revert "Add support for Reactor Netty Micrometer metrics"
This commit removes the support for Reactor Netty metrics since it seems that Spring Boot should not use this feature: * HTTP metrics are already covered by WebFlux * TCP metrics are only meant to TCP server/clients * allocator metrics are already provided by Netty and there is no specific API to enable them here. Closes gh-19388
1 parent fa01a15 commit dfdee3e

File tree

7 files changed

+1
-213
lines changed

7 files changed

+1
-213
lines changed

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

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2020 the original author or authors.
2+
* Copyright 2012-2019 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,7 +17,6 @@
1717
package org.springframework.boot.actuate.autoconfigure.metrics.web.client;
1818

1919
import io.micrometer.core.instrument.MeterRegistry;
20-
import reactor.netty.http.client.HttpClient;
2120

2221
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties;
2322
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties.Web.Client.ClientRequest;
@@ -26,7 +25,6 @@
2625
import org.springframework.boot.actuate.metrics.web.reactive.client.WebClientExchangeTagsProvider;
2726
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2827
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
29-
import org.springframework.boot.autoconfigure.web.reactive.function.client.ReactorNettyHttpClientMapper;
3028
import org.springframework.context.annotation.Bean;
3129
import org.springframework.context.annotation.Configuration;
3230
import org.springframework.web.reactive.function.client.WebClient;
@@ -55,14 +53,4 @@ MetricsWebClientCustomizer metricsWebClientCustomizer(MeterRegistry meterRegistr
5553
request.getAutotime());
5654
}
5755

58-
@ConditionalOnClass(HttpClient.class)
59-
static class ReactorNettyClientMetricsConfiguration {
60-
61-
@Bean
62-
ReactorNettyHttpClientMapper metricsHttpClientMapper() {
63-
return (httpClient) -> httpClient.tcpConfiguration((tcpClient) -> tcpClient.metrics(true));
64-
}
65-
66-
}
67-
6856
}

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

Lines changed: 0 additions & 45 deletions
This file was deleted.

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/netty/package-info.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ org.springframework.boot.actuate.autoconfigure.metrics.orm.jpa.HibernateMetricsA
7171
org.springframework.boot.actuate.autoconfigure.metrics.r2dbc.ConnectionPoolMetricsAutoConfiguration,\
7272
org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration,\
7373
org.springframework.boot.actuate.autoconfigure.metrics.web.jetty.JettyMetricsAutoConfiguration,\
74-
org.springframework.boot.actuate.autoconfigure.metrics.web.netty.NettyMetricsAutoConfiguration,\
7574
org.springframework.boot.actuate.autoconfigure.metrics.web.reactive.WebFluxMetricsAutoConfiguration,\
7675
org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration,\
7776
org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration,\

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

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,16 @@
1818

1919
import java.time.Duration;
2020

21-
import io.micrometer.core.instrument.Clock;
2221
import io.micrometer.core.instrument.MeterRegistry;
23-
import io.micrometer.core.instrument.Metrics;
2422
import io.micrometer.core.instrument.Timer;
25-
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
2623
import io.micrometer.core.instrument.distribution.HistogramSnapshot;
27-
import io.micrometer.core.instrument.simple.SimpleConfig;
28-
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
29-
import okhttp3.mockwebserver.MockResponse;
30-
import okhttp3.mockwebserver.MockWebServer;
3124
import org.junit.jupiter.api.Test;
3225
import org.junit.jupiter.api.extension.ExtendWith;
3326
import reactor.core.publisher.Mono;
34-
import reactor.netty.http.client.HttpClient;
3527

3628
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
3729
import org.springframework.boot.actuate.metrics.web.reactive.client.WebClientExchangeTagsProvider;
3830
import org.springframework.boot.autoconfigure.AutoConfigurations;
39-
import org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration;
4031
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
4132
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
4233
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
@@ -116,47 +107,6 @@ void autoTimeRequestsCanBeConfigured() {
116107
});
117108
}
118109

119-
@Test
120-
void shouldConfigureMetricsForReactorNetty() {
121-
this.contextRunner.withConfiguration(AutoConfigurations.of(ClientHttpConnectorAutoConfiguration.class))
122-
.run((context) -> {
123-
CompositeMeterRegistry registry = Metrics.globalRegistry;
124-
MockWebServer server = new MockWebServer();
125-
try {
126-
server.start();
127-
server.enqueue(new MockResponse());
128-
String serverAddress = "http://" + server.getHostName() + ":" + server.getPort();
129-
WebClient.Builder builder = context.getBean(WebClient.Builder.class);
130-
WebClient client = builder.baseUrl(serverAddress).build();
131-
assertThat(registry.find("reactor.netty.tcp.client.connect.time").timer()).isNull();
132-
client.get().uri("/test").retrieve().toBodilessEntity().block();
133-
assertThat(registry.find("reactor.netty.tcp.client.connect.time").timer()).isNotNull();
134-
}
135-
finally {
136-
server.shutdown();
137-
}
138-
});
139-
}
140-
141-
@Test
142-
void sanityTest() throws Exception {
143-
MockWebServer server = new MockWebServer();
144-
try {
145-
server.start();
146-
server.enqueue(new MockResponse());
147-
SimpleMeterRegistry registry = new SimpleMeterRegistry(SimpleConfig.DEFAULT, Clock.SYSTEM);
148-
Metrics.addRegistry(registry);
149-
HttpClient client = HttpClient.create().metrics(true);
150-
assertThat(registry.find("reactor.netty.http.client.connect.time").timer()).isNull();
151-
client.get().uri("http://" + server.getHostName() + ":" + server.getPort()).response().block();
152-
assertThat(registry.find("reactor.netty.http.client.connect.time").timer()).isNotNull();
153-
}
154-
finally {
155-
server.shutdown();
156-
}
157-
158-
}
159-
160110
private MeterRegistry getInitializedMeterRegistry(AssertableApplicationContext context) {
161111
WebClient webClient = mockWebClient(context.getBean(WebClient.Builder.class));
162112
MeterRegistry registry = context.getBean(MeterRegistry.class);

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

Lines changed: 0 additions & 83 deletions
This file was deleted.

spring-boot-project/spring-boot-docs/src/docs/asciidoc/production-ready-features.adoc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1813,7 +1813,6 @@ Spring Boot registers the following core metrics when applicable:
18131813
* Logback metrics: record the number of events logged to Logback at each level
18141814
* Uptime metrics: report a gauge for uptime and a fixed gauge representing the application's absolute start time
18151815
* Tomcat metrics (`server.tomcat.mbeanregistry.enabled` must be set to `true` for all Tomcat metrics to be registered)
1816-
* Reactor Netty metrics (TCP and allocator metrics for client and server)
18171816
* {spring-integration-docs}system-management.html#micrometer-integration[Spring Integration] metrics
18181817

18191818

0 commit comments

Comments
 (0)