diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle index 58641e66a3..34d619c41d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle @@ -101,7 +101,6 @@ dependencies { optional("org.springframework:spring-webmvc") optional("org.springframework.data:spring-data-couchbase") optional("org.springframework.data:spring-data-jpa") - optional("org.springframework.graphql:spring-graphql") optional("org.springframework.kafka:spring-kafka") optional("org.springframework.security:spring-security-config") optional("org.springframework.security:spring-security-web") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index f0e2c58061..47bc5fc7a6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -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.graphql.GraphQlObservationAutoConfiguration org.springframework.boot.actuate.autoconfigure.observation.web.client.HttpClientObservationsAutoConfiguration org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration diff --git a/spring-boot-project/spring-boot-graphql/build.gradle b/spring-boot-project/spring-boot-graphql/build.gradle index 59fb0621e8..3b6d85fc3e 100644 --- a/spring-boot-project/spring-boot-graphql/build.gradle +++ b/spring-boot-project/spring-boot-graphql/build.gradle @@ -16,6 +16,7 @@ dependencies { optional(project(":spring-boot-project:spring-boot-autoconfigure")) optional(project(":spring-boot-project:spring-boot-http-converter")) + optional(project(":spring-boot-project:spring-boot-micrometer-observation")) optional(project(":spring-boot-project:spring-boot-rsocket")) optional(project(":spring-boot-project:spring-boot-security")) optional(project(":spring-boot-project:spring-boot-webflux")) @@ -33,6 +34,7 @@ dependencies { testImplementation(project(":spring-boot-project:spring-boot-reactor-netty")) testImplementation(project(":spring-boot-project:spring-boot-test")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) + testImplementation("io.micrometer:micrometer-observation-test") testImplementation("org.springframework.graphql:spring-graphql-test") testImplementation("org.springframework.security:spring-security-test") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfiguration.java b/spring-boot-project/spring-boot-graphql/src/main/java/org/springframework/boot/graphql/autoconfigure/observation/GraphQlObservationAutoConfiguration.java similarity index 86% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfiguration.java rename to spring-boot-project/spring-boot-graphql/src/main/java/org/springframework/boot/graphql/autoconfigure/observation/GraphQlObservationAutoConfiguration.java index 7234a15733..eb4e8a64ff 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfiguration.java +++ b/spring-boot-project/spring-boot-graphql/src/main/java/org/springframework/boot/graphql/autoconfigure/observation/GraphQlObservationAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.observation.graphql; +package org.springframework.boot.graphql.autoconfigure.observation; import graphql.GraphQL; import io.micrometer.observation.Observation; @@ -26,7 +26,6 @@ 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.micrometer.observation.autoconfigure.ObservationAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.graphql.execution.GraphQlSource; import org.springframework.graphql.observation.DataFetcherObservationConvention; @@ -39,16 +38,17 @@ import org.springframework.graphql.observation.GraphQlObservationInstrumentation * GraphQL endpoints. * * @author Brian Clozel - * @since 3.0.0 + * @since 4.0.0 */ -@AutoConfiguration(after = ObservationAutoConfiguration.class) +@AutoConfiguration( + afterName = "org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration") @ConditionalOnBean(ObservationRegistry.class) @ConditionalOnClass({ GraphQL.class, GraphQlSource.class, Observation.class }) public class GraphQlObservationAutoConfiguration { @Bean @ConditionalOnMissingBean - public GraphQlObservationInstrumentation graphQlObservationInstrumentation(ObservationRegistry observationRegistry, + GraphQlObservationInstrumentation graphQlObservationInstrumentation(ObservationRegistry observationRegistry, ObjectProvider executionConvention, ObjectProvider dataFetcherConvention, ObjectProvider dataLoaderObservationConvention) { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/package-info.java b/spring-boot-project/spring-boot-graphql/src/main/java/org/springframework/boot/graphql/autoconfigure/observation/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/package-info.java rename to spring-boot-project/spring-boot-graphql/src/main/java/org/springframework/boot/graphql/autoconfigure/observation/package-info.java index a34cae5777..04e7e90f71 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/package-info.java +++ b/spring-boot-project/spring-boot-graphql/src/main/java/org/springframework/boot/graphql/autoconfigure/observation/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for Spring GraphQL observations. */ -package org.springframework.boot.actuate.autoconfigure.observation.graphql; +package org.springframework.boot.graphql.autoconfigure.observation; diff --git a/spring-boot-project/spring-boot-graphql/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-graphql/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 7041853f10..79e251a5bf 100644 --- a/spring-boot-project/spring-boot-graphql/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-graphql/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -3,6 +3,7 @@ org.springframework.boot.graphql.autoconfigure.data.GraphQlQueryByExampleAutoCon org.springframework.boot.graphql.autoconfigure.data.GraphQlQuerydslAutoConfiguration org.springframework.boot.graphql.autoconfigure.data.GraphQlReactiveQueryByExampleAutoConfiguration org.springframework.boot.graphql.autoconfigure.data.GraphQlReactiveQuerydslAutoConfiguration +org.springframework.boot.graphql.autoconfigure.observation.GraphQlObservationAutoConfiguration org.springframework.boot.graphql.autoconfigure.reactive.GraphQlWebFluxAutoConfiguration org.springframework.boot.graphql.autoconfigure.rsocket.GraphQlRSocketAutoConfiguration org.springframework.boot.graphql.autoconfigure.rsocket.RSocketGraphQlClientAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfigurationTests.java b/spring-boot-project/spring-boot-graphql/src/test/java/org/springframework/boot/graphql/autoconfigure/observation/GraphQlObservationAutoConfigurationTests.java similarity index 98% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfigurationTests.java rename to spring-boot-project/spring-boot-graphql/src/test/java/org/springframework/boot/graphql/autoconfigure/observation/GraphQlObservationAutoConfigurationTests.java index 68160531e0..dc8fb326fa 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-graphql/src/test/java/org/springframework/boot/graphql/autoconfigure/observation/GraphQlObservationAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.observation.graphql; +package org.springframework.boot.graphql.autoconfigure.observation; import io.micrometer.observation.ObservationRegistry; import io.micrometer.observation.tck.TestObservationRegistry;