Browse Source

Deprecate Observability API in favor of native MongoDB Java Driver solution.

issue/5009
Christoph Strobl 2 months ago
parent
commit
d16f60cab5
No known key found for this signature in database
GPG Key ID: E6054036D0C37A4B
  1. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java
  2. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/DefaultMongoHandlerObservationConvention.java
  3. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MapRequestContext.java
  4. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java
  5. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java
  6. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoKeyName.java
  7. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservation.java
  8. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java
  9. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/Observer.java
  10. 1
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java
  11. 17
      src/main/antora/modules/ROOT/pages/observability/observability.adoc

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/ContextProviderFactory.java

@ -40,7 +40,9 @@ import com.mongodb.reactivestreams.client.ReactiveContextProvider;
* *
* @author Mark Paluch * @author Mark Paluch
* @since 3.0 * @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 { public class ContextProviderFactory {
private static final boolean SYNCHRONOUS_PRESENT = ClassUtils private static final boolean SYNCHRONOUS_PRESENT = ClassUtils

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/DefaultMongoHandlerObservationConvention.java

@ -29,7 +29,9 @@ import com.mongodb.event.CommandStartedEvent;
* @author Mark Paluch * @author Mark Paluch
* @author Michal Domagala * @author Michal Domagala
* @since 4.0 * @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 { class DefaultMongoHandlerObservationConvention implements MongoHandlerObservationConvention {
@Override @Override

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MapRequestContext.java

@ -28,7 +28,9 @@ import com.mongodb.RequestContext;
* @author Marcin Grzejszczak * @author Marcin Grzejszczak
* @author Greg Turnquist * @author Greg Turnquist
* @since 4.0.0 * @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<Object, Object> map) implements RequestContext { record MapRequestContext(Map<Object, Object> map) implements RequestContext {
public MapRequestContext() { public MapRequestContext() {

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerContext.java

@ -40,7 +40,9 @@ import com.mongodb.event.CommandSucceededEvent;
* @author Greg Turnquist * @author Greg Turnquist
* @author Mark Paluch * @author Mark Paluch
* @since 4.0 * @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<Object> { public class MongoHandlerContext extends SenderContext<Object> {
/** /**

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoHandlerObservationConvention.java

@ -23,7 +23,9 @@ import io.micrometer.observation.ObservationConvention;
* *
* @author Greg Turnquist * @author Greg Turnquist
* @since 4 * @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<MongoHandlerContext> { public interface MongoHandlerObservationConvention extends ObservationConvention<MongoHandlerContext> {
@Override @Override

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoKeyName.java

@ -32,7 +32,9 @@ import org.springframework.util.StringUtils;
* *
* @author Mark Paluch * @author Mark Paluch
* @since 4.4.9 * @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<C>(String name, boolean required, Function<C, @Nullable Object> valueFunction) implements KeyName { record MongoKeyName<C>(String name, boolean required, Function<C, @Nullable Object> valueFunction) implements KeyName {
/** /**

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservation.java

@ -34,7 +34,9 @@ import com.mongodb.event.CommandEvent;
* @author Marcin Grzejszczak * @author Marcin Grzejszczak
* @author Greg Turnquist * @author Greg Turnquist
* @since 4.0 * @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 { enum MongoObservation implements ObservationDocumentation {
/** /**

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/MongoObservationCommandListener.java

@ -41,7 +41,9 @@ import com.mongodb.event.CommandSucceededEvent;
* @author Greg Turnquist * @author Greg Turnquist
* @author François Kha * @author François Kha
* @since 4.0 * @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 { public class MongoObservationCommandListener implements CommandListener {
private static final Log log = LogFactory.getLog(MongoObservationCommandListener.class); private static final Log log = LogFactory.getLog(MongoObservationCommandListener.class);

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/Observer.java

@ -31,7 +31,9 @@ import org.jspecify.annotations.Nullable;
* *
* @author Mark Paluch * @author Mark Paluch
* @since 4.4.9 * @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 { class Observer {
private final List<MongoKeyName.MongoKeyValue> keyValues = new ArrayList<>(); private final List<MongoKeyName.MongoKeyValue> keyValues = new ArrayList<>();

1
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. * Infrastructure to provide driver observability using Micrometer.
* @deprecated since 5.0 in favor of native MongoDB Java Driver observability support.
*/ */
@org.jspecify.annotations.NullMarked @org.jspecify.annotations.NullMarked
package org.springframework.data.mongodb.observability; package org.springframework.data.mongodb.observability;

17
src/main/antora/modules/ROOT/pages/observability/observability.adoc

@ -3,6 +3,23 @@
[[mongodb.observability]] [[mongodb.observability]]
= 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. 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). 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. Until those changes are applied, if you wish to use Spring Data MongoDB's flavor of Observability, you must carry out the following steps.

Loading…
Cancel
Save