From cebc5bc204d6f8493c00fb7746bbec9db4a572ee Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Wed, 22 Oct 2025 15:15:29 +0200 Subject: [PATCH 1/2] Prepare issue branch. --- pom.xml | 2 +- spring-data-mongodb-distribution/pom.xml | 2 +- spring-data-mongodb/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index b23a16229f..53ca5b4c35 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5009-SNAPSHOT pom Spring Data MongoDB diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml index fc88571622..6cde13ebcd 100644 --- a/spring-data-mongodb-distribution/pom.xml +++ b/spring-data-mongodb-distribution/pom.xml @@ -15,7 +15,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5009-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml index 595e5a4250..190cc0b3ab 100644 --- a/spring-data-mongodb/pom.xml +++ b/spring-data-mongodb/pom.xml @@ -13,7 +13,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5009-SNAPSHOT ../pom.xml From d16f60cab5b764a9facf472597e5346d14084b43 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Wed, 22 Oct 2025 15:26:15 +0200 Subject: [PATCH 2/2] Deprecate Observability API in favor of native MongoDB Java Driver solution. --- .../observability/ContextProviderFactory.java | 2 ++ ...efaultMongoHandlerObservationConvention.java | 2 ++ .../observability/MapRequestContext.java | 2 ++ .../observability/MongoHandlerContext.java | 2 ++ .../MongoHandlerObservationConvention.java | 2 ++ .../mongodb/observability/MongoKeyName.java | 2 ++ .../mongodb/observability/MongoObservation.java | 2 ++ .../MongoObservationCommandListener.java | 2 ++ .../data/mongodb/observability/Observer.java | 2 ++ .../mongodb/observability/package-info.java | 1 + .../ROOT/pages/observability/observability.adoc | 17 +++++++++++++++++ 11 files changed, 36 insertions(+) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java index 4b37225b5d..340b5aaca7 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java @@ -40,7 +40,9 @@ * * @author Mark Paluch * @since 3.0 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) public class ContextProviderFactory { private static final boolean SYNCHRONOUS_PRESENT = ClassUtils diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/DefaultMongoHandlerObservationConvention.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/DefaultMongoHandlerObservationConvention.java index 3d3742d577..df932f88d0 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/DefaultMongoHandlerObservationConvention.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/DefaultMongoHandlerObservationConvention.java @@ -29,7 +29,9 @@ * @author Mark Paluch * @author Michal Domagala * @since 4.0 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) class DefaultMongoHandlerObservationConvention implements MongoHandlerObservationConvention { @Override diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MapRequestContext.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MapRequestContext.java index 11c229350c..17bb044919 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MapRequestContext.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MapRequestContext.java @@ -28,7 +28,9 @@ * @author Marcin Grzejszczak * @author Greg Turnquist * @since 4.0.0 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) record MapRequestContext(Map map) implements RequestContext { public MapRequestContext() { diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java index cab9cd5cb8..5c794eb9cb 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java @@ -40,7 +40,9 @@ * @author Greg Turnquist * @author Mark Paluch * @since 4.0 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) public class MongoHandlerContext extends SenderContext { /** diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java index 7d1100c582..067ae40de9 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java @@ -23,7 +23,9 @@ * * @author Greg Turnquist * @since 4 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) public interface MongoHandlerObservationConvention extends ObservationConvention { @Override diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoKeyName.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoKeyName.java index 5fd15c6f51..2a5b9f58d4 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoKeyName.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoKeyName.java @@ -32,7 +32,9 @@ * * @author Mark Paluch * @since 4.4.9 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) record MongoKeyName(String name, boolean required, Function valueFunction) implements KeyName { /** diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservation.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservation.java index 464fb036a8..7defbbde0c 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservation.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservation.java @@ -34,7 +34,9 @@ * @author Marcin Grzejszczak * @author Greg Turnquist * @since 4.0 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) enum MongoObservation implements ObservationDocumentation { /** diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java index fcd4778042..85733f15d6 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java @@ -41,7 +41,9 @@ * @author Greg Turnquist * @author François Kha * @since 4.0 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) public class MongoObservationCommandListener implements CommandListener { private static final Log log = LogFactory.getLog(MongoObservationCommandListener.class); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/Observer.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/Observer.java index ba46c60c68..37981f8229 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/Observer.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/Observer.java @@ -31,7 +31,9 @@ * * @author Mark Paluch * @since 4.4.9 + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ +@Deprecated(since = "5.0", forRemoval = true) class Observer { private final List keyValues = new ArrayList<>(); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java index d6319e5f4f..786b39ef00 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java @@ -1,5 +1,6 @@ /** * Infrastructure to provide driver observability using Micrometer. + * @deprecated since 5.0 in favor of native MongoDB Java Driver observability support. */ @org.jspecify.annotations.NullMarked package org.springframework.data.mongodb.observability; diff --git a/src/main/antora/modules/ROOT/pages/observability/observability.adoc b/src/main/antora/modules/ROOT/pages/observability/observability.adoc index 8a9b0a1eeb..daf8355420 100644 --- a/src/main/antora/modules/ROOT/pages/observability/observability.adoc +++ b/src/main/antora/modules/ROOT/pages/observability/observability.adoc @@ -3,6 +3,23 @@ [[mongodb.observability]] = Observability +[WARNING] +==== +Spring Data MongoDB's flavor of observability has been deprecated and is scheduled for removal in favor of the observability support being directly built into the MongoDB Java Driver which can be configured as outlined below: + +[source,java] +---- +@Bean +MongoClientSettingsBuilderCustomizer mongoDbObservabilitySettings(ObservationRegistry registry) { + return (clientSettingsBuilder) -> { + clientSettingsBuilder.observabilitySettings(ObservabilitySettings.micrometerBuilder() + .observationRegistry(observationRegistry) + .build()); + }; +} +---- +==== + Spring Data MongoDB currently has the most up-to-date code to support Observability in your MongoDB application. These changes, however, haven't been picked up by Spring Boot (yet). Until those changes are applied, if you wish to use Spring Data MongoDB's flavor of Observability, you must carry out the following steps.