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; @@ -40,7 +40,9 @@ import com.mongodb.reactivestreams.client.ReactiveContextProvider;
*
* @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

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

@ -29,7 +29,9 @@ import com.mongodb.event.CommandStartedEvent; @@ -29,7 +29,9 @@ import com.mongodb.event.CommandStartedEvent;
* @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

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

@ -28,7 +28,9 @@ import com.mongodb.RequestContext; @@ -28,7 +28,9 @@ import com.mongodb.RequestContext;
* @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<Object, Object> map) implements RequestContext {
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; @@ -40,7 +40,9 @@ import com.mongodb.event.CommandSucceededEvent;
* @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<Object> {
/**

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

@ -23,7 +23,9 @@ import io.micrometer.observation.ObservationConvention; @@ -23,7 +23,9 @@ import io.micrometer.observation.ObservationConvention;
*
* @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<MongoHandlerContext> {
@Override

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

@ -32,7 +32,9 @@ import org.springframework.util.StringUtils; @@ -32,7 +32,9 @@ import org.springframework.util.StringUtils;
*
* @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<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; @@ -34,7 +34,9 @@ import com.mongodb.event.CommandEvent;
* @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 {
/**

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

@ -41,7 +41,9 @@ import com.mongodb.event.CommandSucceededEvent; @@ -41,7 +41,9 @@ import com.mongodb.event.CommandSucceededEvent;
* @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);

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

@ -31,7 +31,9 @@ import org.jspecify.annotations.Nullable; @@ -31,7 +31,9 @@ import org.jspecify.annotations.Nullable;
*
* @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<MongoKeyName.MongoKeyValue> keyValues = new ArrayList<>();

1
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/observability/package-info.java

@ -1,5 +1,6 @@ @@ -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;

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

@ -3,6 +3,23 @@ @@ -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.

Loading…
Cancel
Save