From b874281f7badd88e10d7b9daf91024373b42f1d6 Mon Sep 17 00:00:00 2001 From: francoiskha Date: Wed, 10 Jan 2024 09:21:35 +0100 Subject: [PATCH] Allow custom MongoHandlerObservationConvention Closes #4321 --- .../MongoObservationCommandListener.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) 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 a884919e16..c48976e238 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 @@ -48,7 +48,7 @@ public class MongoObservationCommandListener implements CommandListener { private final ObservationRegistry observationRegistry; private final @Nullable ConnectionString connectionString; - private final MongoHandlerObservationConvention observationConvention = new DefaultMongoHandlerObservationConvention(); + private final MongoHandlerObservationConvention observationConvention; /** * Create a new {@link MongoObservationCommandListener} to record {@link Observation}s. @@ -61,6 +61,7 @@ public MongoObservationCommandListener(ObservationRegistry observationRegistry) this.observationRegistry = observationRegistry; this.connectionString = null; + this.observationConvention = new DefaultMongoHandlerObservationConvention(); } /** @@ -77,6 +78,26 @@ public MongoObservationCommandListener(ObservationRegistry observationRegistry, this.observationRegistry = observationRegistry; this.connectionString = connectionString; + this.observationConvention = new DefaultMongoHandlerObservationConvention(); + } + + /** + * Create a new {@link MongoObservationCommandListener} to record {@link Observation}s. This constructor attaches the + * {@link ConnectionString} to every {@link Observation} and uses the given {@link MongoHandlerObservationConvention} + * + * @param observationRegistry must not be {@literal null} + * @param connectionString must not be {@literal null} + * @param observationConvention must not be {@literal null} + */ + public MongoObservationCommandListener(ObservationRegistry observationRegistry, ConnectionString connectionString,MongoHandlerObservationConvention observationConvention) { + + Assert.notNull(observationRegistry, "ObservationRegistry must not be null"); + Assert.notNull(connectionString, "ConnectionString must not be null"); + Assert.notNull(observationConvention, "MongoHandlerObservationConvention must not be null"); + + this.observationRegistry = observationRegistry; + this.connectionString = connectionString; + this.observationConvention = observationConvention; } @Override