Move WebFlux observation auto-config into spring-boot-webflux
Issue: 46138
This commit is contained in:
parent
54991f4212
commit
791fd90359
|
@ -16,7 +16,6 @@ org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAuto
|
|||
org.springframework.boot.actuate.autoconfigure.metrics.data.RepositoryMetricsAutoConfiguration
|
||||
org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsAutoConfiguration
|
||||
org.springframework.boot.actuate.autoconfigure.observability.ObservabilityAutoConfiguration
|
||||
org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration
|
||||
org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration
|
||||
org.springframework.boot.actuate.autoconfigure.sbom.SbomEndpointAutoConfiguration
|
||||
org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration
|
||||
|
|
|
@ -35,7 +35,6 @@ import org.junit.jupiter.api.Test;
|
|||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.actuate.autoconfigure.observability.ObservabilityAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration;
|
||||
import org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
|
||||
import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration;
|
||||
|
@ -55,6 +54,7 @@ import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
|||
import org.springframework.boot.tomcat.autoconfigure.servlet.TomcatServletWebServerAutoConfiguration;
|
||||
import org.springframework.boot.web.server.test.client.TestRestTemplate;
|
||||
import org.springframework.boot.web.servlet.FilterRegistrationBean;
|
||||
import org.springframework.boot.webflux.observation.autoconfigure.WebFluxObservationAutoConfiguration;
|
||||
import org.springframework.boot.webmvc.autoconfigure.DispatcherServletAutoConfiguration;
|
||||
import org.springframework.boot.webmvc.autoconfigure.WebMvcAutoConfiguration;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
|
|
@ -35,6 +35,8 @@ dependencies {
|
|||
|
||||
optional(project(":spring-boot-project:spring-boot-actuator"))
|
||||
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
|
||||
optional(project(":spring-boot-project:spring-boot-metrics"))
|
||||
optional(project(":spring-boot-project:spring-boot-micrometer-observation"))
|
||||
optional(project(":spring-boot-project:spring-boot-validation"))
|
||||
|
||||
testFixturesApi(testFixtures(project(":spring-boot-project:spring-boot-actuator")))
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.actuate.autoconfigure.observation.web.reactive;
|
||||
package org.springframework.boot.webflux.observation.autoconfigure;
|
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micrometer.core.instrument.config.MeterFilter;
|
||||
|
@ -30,8 +30,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplicat
|
|||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.boot.metrics.OnlyOnceLoggingDenyMeterFilter;
|
||||
import org.springframework.boot.metrics.autoconfigure.MetricsProperties;
|
||||
import org.springframework.boot.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration;
|
||||
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
|
||||
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.core.annotation.Order;
|
||||
|
@ -46,9 +44,11 @@ import org.springframework.http.server.reactive.observation.ServerRequestObserva
|
|||
* @author Jon Schneider
|
||||
* @author Dmytro Nosan
|
||||
* @author Moritz Halbritter
|
||||
* @since 3.0.0
|
||||
* @since 4.0.0
|
||||
*/
|
||||
@AutoConfiguration(after = { SimpleMetricsExportAutoConfiguration.class, ObservationAutoConfiguration.class })
|
||||
@AutoConfiguration(afterName = {
|
||||
"org.springframework.boot.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration",
|
||||
"org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration" })
|
||||
@ConditionalOnClass({ Observation.class, MeterRegistry.class })
|
||||
@ConditionalOnBean({ ObservationRegistry.class, MeterRegistry.class })
|
||||
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
|
|
@ -17,4 +17,4 @@
|
|||
/**
|
||||
* Auto-configuration for WebFlux actuator observations.
|
||||
*/
|
||||
package org.springframework.boot.actuate.autoconfigure.observation.web.reactive;
|
||||
package org.springframework.boot.webflux.observation.autoconfigure;
|
|
@ -3,3 +3,4 @@ org.springframework.boot.webflux.autoconfigure.ReactiveMultipartAutoConfiguratio
|
|||
org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration
|
||||
org.springframework.boot.webflux.autoconfigure.WebSessionIdResolverAutoConfiguration
|
||||
org.springframework.boot.webflux.autoconfigure.error.ErrorWebFluxAutoConfiguration
|
||||
org.springframework.boot.webflux.observation.autoconfigure.WebFluxObservationAutoConfiguration
|
||||
|
|
|
@ -14,17 +14,16 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.boot.actuate.autoconfigure.observation.web.reactive;
|
||||
package org.springframework.boot.webflux.observation.autoconfigure;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
|
||||
import org.springframework.boot.actuate.autoconfigure.metrics.web.TestController;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
|
||||
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
|
||||
|
@ -35,6 +34,8 @@ import org.springframework.boot.test.system.OutputCaptureExtension;
|
|||
import org.springframework.boot.webflux.autoconfigure.WebFluxAutoConfiguration;
|
||||
import org.springframework.http.server.reactive.observation.DefaultServerRequestObservationConvention;
|
||||
import org.springframework.http.server.reactive.observation.ServerRequestObservationConvention;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
@ -51,7 +52,7 @@ import static org.mockito.Mockito.mock;
|
|||
class WebFluxObservationAutoConfigurationTests {
|
||||
|
||||
private final ReactiveWebApplicationContextRunner contextRunner = new ReactiveWebApplicationContextRunner()
|
||||
.with(MetricsRun.simple())
|
||||
.withBean(SimpleMeterRegistry.class)
|
||||
.withConfiguration(
|
||||
AutoConfigurations.of(ObservationAutoConfiguration.class, WebFluxObservationAutoConfiguration.class));
|
||||
|
||||
|
@ -130,4 +131,24 @@ class WebFluxObservationAutoConfigurationTests {
|
|||
return meterRegistry;
|
||||
}
|
||||
|
||||
@RestController
|
||||
static class TestController {
|
||||
|
||||
@GetMapping("test0")
|
||||
String test0() {
|
||||
return "test0";
|
||||
}
|
||||
|
||||
@GetMapping("test1")
|
||||
String test1() {
|
||||
return "test1";
|
||||
}
|
||||
|
||||
@GetMapping("test2")
|
||||
String test2() {
|
||||
return "test2";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -61,6 +61,10 @@
|
|||
<allow pkg="io.micrometer" />
|
||||
</subpackage>
|
||||
|
||||
<subpackage name=".*\.observation" regex="true">
|
||||
<allow pkg="io.micrometer" />
|
||||
</subpackage>
|
||||
|
||||
<subpackage name="[^.]+\.actuate" regex="true">
|
||||
<subpackage name="endpoint">
|
||||
<file name=".*Endpoint(WebExtension)?" regex="true">
|
||||
|
|
Loading…
Reference in New Issue