Skip to content

Commit 667b71e

Browse files
committed
Switch to Micrometer 1.10's tracing APIs.
Micrometer Tracing 1.10 has some breaking APIs. See #4023.
1 parent 225dbee commit 667b71e

File tree

6 files changed

+57
-52
lines changed

6 files changed

+57
-52
lines changed
Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,61 +15,65 @@
1515
*/
1616
package org.springframework.data.mongodb.observability;
1717

18-
import io.micrometer.common.Tag;
19-
import io.micrometer.common.Tags;
18+
import io.micrometer.common.KeyValue;
19+
import io.micrometer.common.KeyValues;
20+
21+
import org.springframework.data.mongodb.observability.MongoObservation.HighCardinalityCommandKeyNames;
22+
import org.springframework.data.mongodb.observability.MongoObservation.LowCardinalityCommandKeyNames;
2023

2124
import com.mongodb.connection.ConnectionDescription;
2225
import com.mongodb.connection.ConnectionId;
2326
import com.mongodb.event.CommandStartedEvent;
2427

2528
/**
26-
* Default {@link MongoHandlerTagsProvider} implementation.
29+
* Default {@link MongoHandlerKeyValuesProvider} implementation.
2730
*
2831
* @author Greg Turnquist
2932
* @since 4.0.0
3033
*/
31-
public class DefaultMongoHandlerTagsProvider implements MongoHandlerTagsProvider {
34+
public class DefaultMongoHandlerKeyValuesProvider implements MongoHandlerKeyValuesProvider {
3235

3336
@Override
34-
public Tags getLowCardinalityTags(MongoHandlerContext context) {
37+
public KeyValues getLowCardinalityKeyValues(MongoHandlerContext context) {
3538

36-
Tags tags = Tags.empty();
39+
KeyValues keyValues = KeyValues.empty();
3740

3841
if (context.getCollectionName() != null) {
39-
tags = tags.and(MongoObservation.LowCardinalityCommandTags.MONGODB_COLLECTION.of(context.getCollectionName()));
42+
keyValues = keyValues
43+
.and(KeyValue.of(LowCardinalityCommandKeyNames.MONGODB_COLLECTION.getKeyName(), context.getCollectionName()));
4044
}
4145

42-
Tag connectionTag = connectionTag(context.getCommandStartedEvent());
46+
KeyValue connectionTag = connectionTag(context.getCommandStartedEvent());
4347
if (connectionTag != null) {
44-
tags = tags.and(connectionTag);
48+
keyValues = keyValues.and(connectionTag);
4549
}
4650

47-
return tags;
51+
return keyValues;
4852
}
4953

5054
@Override
51-
public Tags getHighCardinalityTags(MongoHandlerContext context) {
55+
public KeyValues getHighCardinalityKeyValues(MongoHandlerContext context) {
5256

53-
return Tags.of(MongoObservation.HighCardinalityCommandTags.MONGODB_COMMAND
54-
.of(context.getCommandStartedEvent().getCommandName()));
57+
return KeyValues.of(KeyValue.of(HighCardinalityCommandKeyNames.MONGODB_COMMAND.getKeyName(),
58+
context.getCommandStartedEvent().getCommandName()));
5559
}
5660

5761
/**
58-
* Extract connection details for a MongoDB connection into a {@link Tag}.
62+
* Extract connection details for a MongoDB connection into a {@link KeyValue}.
5963
*
6064
* @param event
6165
* @return
6266
*/
63-
private static Tag connectionTag(CommandStartedEvent event) {
67+
private static KeyValue connectionTag(CommandStartedEvent event) {
6468

6569
ConnectionDescription connectionDescription = event.getConnectionDescription();
6670

6771
if (connectionDescription != null) {
6872

6973
ConnectionId connectionId = connectionDescription.getConnectionId();
7074
if (connectionId != null) {
71-
return MongoObservation.LowCardinalityCommandTags.MONGODB_CLUSTER_ID
72-
.of(connectionId.getServerId().getClusterId().getValue());
75+
return KeyValue.of(LowCardinalityCommandKeyNames.MONGODB_CLUSTER_ID.getKeyName(),
76+
connectionId.getServerId().getClusterId().getValue());
7377
}
7478
}
7579

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
import io.micrometer.observation.Observation;
1919

2020
/**
21-
* {@link Observation.TagsProvider} for {@link MongoHandlerContext}.
21+
* {@link Observation.KeyValuesProvider} for {@link MongoHandlerContext}.
2222
*
2323
* @author Greg Turnquist
2424
* @since 4.0.0
2525
*/
26-
public interface MongoHandlerTagsProvider extends Observation.TagsProvider<MongoHandlerContext> {
26+
public interface MongoHandlerKeyValuesProvider extends Observation.KeyValuesProvider<MongoHandlerContext> {
2727

2828
@Override
2929
default boolean supportsContext(Observation.Context context) {

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

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
*/
1616
package org.springframework.data.mongodb.observability;
1717

18-
import io.micrometer.common.docs.TagKey;
18+
import io.micrometer.common.docs.KeyName;
1919
import io.micrometer.observation.docs.DocumentedObservation;
2020

2121
/**
2222
* A MongoDB-based {@link io.micrometer.observation.Observation}.
2323
*
2424
* @author Marcin Grzejszczak
2525
* @author Greg Turnquist
26-
* @since 1.0.0
26+
* @since 4.0.0
2727
*/
2828
enum MongoObservation implements DocumentedObservation {
2929

@@ -38,13 +38,13 @@ public String getName() {
3838
}
3939

4040
@Override
41-
public TagKey[] getLowCardinalityTagKeys() {
42-
return LowCardinalityCommandTags.values();
41+
public KeyName[] getLowCardinalityKeyNames() {
42+
return LowCardinalityCommandKeyNames.values();
4343
}
4444

4545
@Override
46-
public TagKey[] getHighCardinalityTagKeys() {
47-
return HighCardinalityCommandTags.values();
46+
public KeyName[] getHighCardinalityKeyNames() {
47+
return HighCardinalityCommandKeyNames.values();
4848
}
4949

5050
@Override
@@ -54,16 +54,16 @@ public String getPrefix() {
5454
};
5555

5656
/**
57-
* Enums related to low cardinality tags for MongoDB commands.
57+
* Enums related to low cardinality key names for MongoDB commands.
5858
*/
59-
enum LowCardinalityCommandTags implements TagKey {
59+
enum LowCardinalityCommandKeyNames implements KeyName {
6060

6161
/**
6262
* MongoDB collection name.
6363
*/
6464
MONGODB_COLLECTION {
6565
@Override
66-
public String getKey() {
66+
public String getKeyName() {
6767
return "spring.data.mongodb.collection";
6868
}
6969
},
@@ -73,23 +73,23 @@ public String getKey() {
7373
*/
7474
MONGODB_CLUSTER_ID {
7575
@Override
76-
public String getKey() {
76+
public String getKeyName() {
7777
return "spring.data.mongodb.cluster_id";
7878
}
7979
}
8080
}
8181

8282
/**
83-
* Enums related to high cardinality tags for MongoDB commands.
83+
* Enums related to high cardinality key names for MongoDB commands.
8484
*/
85-
enum HighCardinalityCommandTags implements TagKey {
85+
enum HighCardinalityCommandKeyNames implements KeyName {
8686

8787
/**
8888
* MongoDB command value.
8989
*/
9090
MONGODB_COMMAND {
9191
@Override
92-
public String getKey() {
92+
public String getKeyName() {
9393
return "spring.data.mongodb.command";
9494
}
9595
}

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,18 @@
3737
* @since 4.0.0
3838
*/
3939
public final class MongoObservationCommandListener
40-
implements CommandListener, Observation.TagsProviderAware<MongoHandlerTagsProvider> {
40+
implements CommandListener, Observation.KeyValuesProviderAware<MongoHandlerKeyValuesProvider> {
4141

4242
private static final Log log = LogFactory.getLog(MongoObservationCommandListener.class);
4343

4444
private final ObservationRegistry observationRegistry;
4545

46-
private MongoHandlerTagsProvider tagsProvider;
46+
private MongoHandlerKeyValuesProvider keyValuesProvider;
4747

4848
public MongoObservationCommandListener(ObservationRegistry observationRegistry) {
4949

5050
this.observationRegistry = observationRegistry;
51-
this.tagsProvider = new DefaultMongoHandlerTagsProvider();
51+
this.keyValuesProvider = new DefaultMongoHandlerKeyValuesProvider();
5252
}
5353

5454
@Override
@@ -160,7 +160,7 @@ private void setupObservability(CommandStartedEvent event, RequestContext reques
160160
Observation observation = MongoObservation.MONGODB_COMMAND_OBSERVATION
161161
.observation(this.observationRegistry, observationContext) //
162162
.contextualName(observationContext.getContextualName()) //
163-
.tagsProvider(this.tagsProvider) //
163+
.keyValuesProvider(this.keyValuesProvider) //
164164
.start();
165165

166166
requestContext.put(Observation.class, observation);
@@ -173,7 +173,7 @@ private void setupObservability(CommandStartedEvent event, RequestContext reques
173173
}
174174

175175
@Override
176-
public void setTagsProvider(MongoHandlerTagsProvider mongoHandlerTagsProvider) {
177-
this.tagsProvider = mongoHandlerTagsProvider;
176+
public void setKeyValuesProvider(MongoHandlerKeyValuesProvider mongoHandlerKeyValuesProvider) {
177+
this.keyValuesProvider = mongoHandlerKeyValuesProvider;
178178
}
179179
}

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/observability/MongoObservationCommandListenerForTracingTests.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
import org.jetbrains.annotations.NotNull;
3131
import org.junit.jupiter.api.BeforeEach;
3232
import org.junit.jupiter.api.Test;
33-
import org.springframework.data.mongodb.observability.MongoObservation.HighCardinalityCommandTags;
34-
import org.springframework.data.mongodb.observability.MongoObservation.LowCardinalityCommandTags;
33+
import org.springframework.data.mongodb.observability.MongoObservation.HighCardinalityCommandKeyNames;
34+
import org.springframework.data.mongodb.observability.MongoObservation.LowCardinalityCommandKeyNames;
3535

3636
import com.mongodb.ServerAddress;
3737
import com.mongodb.connection.ClusterId;
@@ -163,8 +163,8 @@ private SpanAssert assertThatMongoSpanIsClientWithTags() {
163163
.hasNameEqualTo("insert user") //
164164
.hasKindEqualTo(Span.Kind.CLIENT) //
165165
.hasRemoteServiceNameEqualTo("mongodb-database") //
166-
.hasTag(HighCardinalityCommandTags.MONGODB_COMMAND.getKey(), "insert") //
167-
.hasTag(LowCardinalityCommandTags.MONGODB_COLLECTION.getKey(), "user") //
168-
.hasTagWithKey(LowCardinalityCommandTags.MONGODB_CLUSTER_ID.getKey());
166+
.hasTag(HighCardinalityCommandKeyNames.MONGODB_COMMAND.getKeyName(), "insert") //
167+
.hasTag(LowCardinalityCommandKeyNames.MONGODB_COLLECTION.getKeyName(), "user") //
168+
.hasTagWithKey(LowCardinalityCommandKeyNames.MONGODB_CLUSTER_ID.getKeyName());
169169
}
170170
}

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/observability/MongoObservationCommandListenerTests.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717

1818
import static io.micrometer.core.tck.MeterRegistryAssert.*;
1919

20-
import io.micrometer.common.Tags;
20+
import io.micrometer.common.KeyValue;
21+
import io.micrometer.common.KeyValues;
2122
import io.micrometer.core.instrument.MeterRegistry;
2223
import io.micrometer.core.instrument.observation.TimerObservationHandler;
2324
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
@@ -28,8 +29,8 @@
2829
import org.bson.BsonString;
2930
import org.junit.jupiter.api.BeforeEach;
3031
import org.junit.jupiter.api.Test;
31-
import org.springframework.data.mongodb.observability.MongoObservation.HighCardinalityCommandTags;
32-
import org.springframework.data.mongodb.observability.MongoObservation.LowCardinalityCommandTags;
32+
import org.springframework.data.mongodb.observability.MongoObservation.HighCardinalityCommandKeyNames;
33+
import org.springframework.data.mongodb.observability.MongoObservation.LowCardinalityCommandKeyNames;
3334

3435
import com.mongodb.ServerAddress;
3536
import com.mongodb.connection.ClusterId;
@@ -148,8 +149,8 @@ void successfullyCompletedCommandWithoutClusterInformationShouldCreateTimerWhenP
148149
listener.commandSucceeded(new CommandSucceededEvent(testRequestContext, 0, null, "insert", null, 0));
149150

150151
// then
151-
assertThat(meterRegistry).hasTimerWithNameAndTags(HighCardinalityCommandTags.MONGODB_COMMAND.getKey(),
152-
Tags.of(LowCardinalityCommandTags.MONGODB_COLLECTION.of("user")));
152+
assertThat(meterRegistry).hasTimerWithNameAndTags(HighCardinalityCommandKeyNames.MONGODB_COMMAND.getKeyName(),
153+
KeyValues.of(KeyValue.of(LowCardinalityCommandKeyNames.MONGODB_COLLECTION.getKeyName(), "user")));
153154
}
154155

155156
@Test
@@ -177,10 +178,10 @@ void commandWithErrorShouldCreateTimerWhenParentSampleInRequestContext() {
177178
private void assertThatTimerRegisteredWithTags() {
178179

179180
assertThat(meterRegistry) //
180-
.hasTimerWithNameAndTags(HighCardinalityCommandTags.MONGODB_COMMAND.getKey(),
181-
Tags.of(LowCardinalityCommandTags.MONGODB_COLLECTION.getKey(), "user")) //
182-
.hasTimerWithNameAndTagKeys(HighCardinalityCommandTags.MONGODB_COMMAND.getKey(),
183-
LowCardinalityCommandTags.MONGODB_CLUSTER_ID.getKey());
181+
.hasTimerWithNameAndTags(HighCardinalityCommandKeyNames.MONGODB_COMMAND.getKeyName(),
182+
KeyValues.of(KeyValue.of(LowCardinalityCommandKeyNames.MONGODB_COLLECTION.getKeyName(), "user"))) //
183+
.hasTimerWithNameAndTagKeys(HighCardinalityCommandKeyNames.MONGODB_COMMAND.getKeyName(),
184+
LowCardinalityCommandKeyNames.MONGODB_CLUSTER_ID.getKeyName());
184185
}
185186

186187
}

0 commit comments

Comments
 (0)