Skip to content

Commit fc4f0a2

Browse files
wilkinsonaphilwebb
authored andcommitted
Move WebFlux observation auto-config into spring-boot-webflux
Issue: 46138
1 parent dbc6e4c commit fc4f0a2

File tree

8 files changed

+39
-12
lines changed

8 files changed

+39
-12
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAuto
1616
org.springframework.boot.actuate.autoconfigure.metrics.data.RepositoryMetricsAutoConfiguration
1717
org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsAutoConfiguration
1818
org.springframework.boot.actuate.autoconfigure.observability.ObservabilityAutoConfiguration
19-
org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration
2019
org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration
2120
org.springframework.boot.actuate.autoconfigure.sbom.SbomEndpointAutoConfiguration
2221
org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535

3636
import org.springframework.beans.factory.annotation.Autowired;
3737
import org.springframework.boot.actuate.autoconfigure.observability.ObservabilityAutoConfiguration;
38-
import org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration;
3938
import org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration;
4039
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
4140
import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration;
@@ -55,6 +54,7 @@
5554
import org.springframework.boot.tomcat.autoconfigure.servlet.TomcatServletWebServerAutoConfiguration;
5655
import org.springframework.boot.web.server.test.client.TestRestTemplate;
5756
import org.springframework.boot.web.servlet.FilterRegistrationBean;
57+
import org.springframework.boot.webflux.observation.autoconfigure.WebFluxObservationAutoConfiguration;
5858
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletAutoConfiguration;
5959
import org.springframework.boot.webmvc.autoconfigure.WebMvcAutoConfiguration;
6060
import org.springframework.context.ApplicationContext;

spring-boot-project/spring-boot-webflux/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ dependencies {
3535

3636
optional(project(":spring-boot-project:spring-boot-actuator"))
3737
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
38+
optional(project(":spring-boot-project:spring-boot-metrics"))
39+
optional(project(":spring-boot-project:spring-boot-micrometer-observation"))
3840
optional(project(":spring-boot-project:spring-boot-validation"))
3941

4042
testFixturesApi(testFixtures(project(":spring-boot-project:spring-boot-actuator")))
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.observation.web.reactive;
17+
package org.springframework.boot.webflux.observation.autoconfigure;
1818

1919
import io.micrometer.core.instrument.MeterRegistry;
2020
import io.micrometer.core.instrument.config.MeterFilter;
@@ -30,8 +30,6 @@
3030
import org.springframework.boot.context.properties.EnableConfigurationProperties;
3131
import org.springframework.boot.metrics.OnlyOnceLoggingDenyMeterFilter;
3232
import org.springframework.boot.metrics.autoconfigure.MetricsProperties;
33-
import org.springframework.boot.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration;
34-
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
3533
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationProperties;
3634
import org.springframework.context.annotation.Bean;
3735
import org.springframework.core.annotation.Order;
@@ -46,9 +44,11 @@
4644
* @author Jon Schneider
4745
* @author Dmytro Nosan
4846
* @author Moritz Halbritter
49-
* @since 3.0.0
47+
* @since 4.0.0
5048
*/
51-
@AutoConfiguration(after = { SimpleMetricsExportAutoConfiguration.class, ObservationAutoConfiguration.class })
49+
@AutoConfiguration(afterName = {
50+
"org.springframework.boot.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration",
51+
"org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration" })
5252
@ConditionalOnClass({ Observation.class, MeterRegistry.class })
5353
@ConditionalOnBean({ ObservationRegistry.class, MeterRegistry.class })
5454
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717
/**
1818
* Auto-configuration for WebFlux actuator observations.
1919
*/
20-
package org.springframework.boot.actuate.autoconfigure.observation.web.reactive;
20+
package org.springframework.boot.webflux.observation.autoconfigure;

spring-boot-project/spring-boot-webflux/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ org.springframework.boot.webflux.autoconfigure.ReactiveMultipartAutoConfiguratio
33
org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration
44
org.springframework.boot.webflux.autoconfigure.WebSessionIdResolverAutoConfiguration
55
org.springframework.boot.webflux.autoconfigure.error.ErrorWebFluxAutoConfiguration
6+
org.springframework.boot.webflux.observation.autoconfigure.WebFluxObservationAutoConfiguration
Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,16 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.observation.web.reactive;
17+
package org.springframework.boot.webflux.observation.autoconfigure;
1818

1919
import java.time.Duration;
2020
import java.time.temporal.ChronoUnit;
2121

2222
import io.micrometer.core.instrument.MeterRegistry;
23+
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
2324
import org.junit.jupiter.api.Test;
2425
import org.junit.jupiter.api.extension.ExtendWith;
2526

26-
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
27-
import org.springframework.boot.actuate.autoconfigure.metrics.web.TestController;
2827
import org.springframework.boot.autoconfigure.AutoConfigurations;
2928
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
3029
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
@@ -35,6 +34,8 @@
3534
import org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration;
3635
import org.springframework.http.server.reactive.observation.DefaultServerRequestObservationConvention;
3736
import org.springframework.http.server.reactive.observation.ServerRequestObservationConvention;
37+
import org.springframework.web.bind.annotation.GetMapping;
38+
import org.springframework.web.bind.annotation.RestController;
3839

3940
import static org.assertj.core.api.Assertions.assertThat;
4041
import static org.mockito.Mockito.mock;
@@ -51,7 +52,7 @@
5152
class WebFluxObservationAutoConfigurationTests {
5253

5354
private final ReactiveWebApplicationContextRunner contextRunner = new ReactiveWebApplicationContextRunner()
54-
.with(MetricsRun.simple())
55+
.withBean(SimpleMeterRegistry.class)
5556
.withConfiguration(
5657
AutoConfigurations.of(ObservationAutoConfiguration.class, WebFluxObservationAutoConfiguration.class));
5758

@@ -130,4 +131,24 @@ private MeterRegistry getInitializedMeterRegistry(AssertableReactiveWebApplicati
130131
return meterRegistry;
131132
}
132133

134+
@RestController
135+
static class TestController {
136+
137+
@GetMapping("test0")
138+
String test0() {
139+
return "test0";
140+
}
141+
142+
@GetMapping("test1")
143+
String test1() {
144+
return "test1";
145+
}
146+
147+
@GetMapping("test2")
148+
String test2() {
149+
return "test2";
150+
}
151+
152+
}
153+
133154
}

src/checkstyle/import-control.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@
6161
<allow pkg="io.micrometer" />
6262
</subpackage>
6363

64+
<subpackage name=".*\.observation" regex="true">
65+
<allow pkg="io.micrometer" />
66+
</subpackage>
67+
6468
<subpackage name="[^.]+\.actuate" regex="true">
6569
<subpackage name="endpoint">
6670
<file name=".*Endpoint(WebExtension)?" regex="true">

0 commit comments

Comments
 (0)