Skip to content

Commit 9953305

Browse files
Changes following the review
1 parent a9c4ed2 commit 9953305

File tree

4 files changed

+22
-26
lines changed

4 files changed

+22
-26
lines changed

micrometer-core/src/main/java/io/micrometer/core/instrument/binder/okhttp3/OkHttpDocumentedObservation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ static Observation of(@NonNull ObservationRegistry registry, @NonNull OkHttpCont
6060
@Nullable Observation.ObservationConvention<OkHttpContext> customConvention) {
6161
Observation.ObservationConvention<OkHttpContext> convention = null;
6262
if (registry.isNoop()) {
63-
convention = Observation.ObservationConvention.noOp();
63+
return Observation.NOOP;
6464
}
6565
else if (customConvention != null) {
6666
convention = customConvention;

micrometer-core/src/main/java/io/micrometer/core/instrument/binder/okhttp3/OkHttpMetricsEventListener.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public class OkHttpMetricsEventListener extends EventListener {
6767

6868
private final ObservationRegistry observationRegistry;
6969

70-
private final Observation.ObservationConvention<OkHttpContext> keyValuesProvider;
70+
private final Observation.ObservationConvention<OkHttpContext> observationConvention;
7171

7272
private final String requestsMetricName;
7373

@@ -96,14 +96,14 @@ protected OkHttpMetricsEventListener(MeterRegistry registry, String requestsMetr
9696
}
9797

9898
OkHttpMetricsEventListener(MeterRegistry registry, ObservationRegistry observationRegistry,
99-
Observation.ObservationConvention<OkHttpContext> keyValuesProvider, String requestsMetricName,
99+
Observation.ObservationConvention<OkHttpContext> observationConvention, String requestsMetricName,
100100
Function<Request, String> urlMapper, Iterable<Tag> extraTags,
101101
Iterable<BiFunction<Request, Response, Tag>> contextSpecificTags, Iterable<String> requestTagKeys,
102102
boolean includeHostTag) {
103103
this.registry = registry;
104104
this.observationRegistry = observationRegistry;
105105
this.observationRegistryNoOp = observationRegistry.isNoop();
106-
this.keyValuesProvider = keyValuesProvider;
106+
this.observationConvention = observationConvention;
107107
this.requestsMetricName = requestsMetricName;
108108
this.urlMapper = urlMapper;
109109
this.extraTags = extraTags;
@@ -173,7 +173,7 @@ public Object unwrap() {
173173
});
174174
}
175175
Observation observation = OkHttpDocumentedObservation
176-
.of(this.observationRegistry, okHttpContext, requestsMetricName, this.keyValuesProvider).start();
176+
.of(this.observationRegistry, okHttpContext, requestsMetricName, this.observationConvention).start();
177177
callState.setContext(okHttpContext);
178178
callState.setObservation(observation);
179179
this.callState.put(call, callState);

micrometer-observation/src/main/java/io/micrometer/observation/Observation.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -762,17 +762,6 @@ interface KeyValuesConvention {
762762
interface ObservationConvention<T extends Observation.Context>
763763
extends Observation.KeyValuesProvider<T>, KeyValuesConvention {
764764

765-
/**
766-
* Convenience method for creating no-op implementations that are of proper types.
767-
* That way you don't have to do casting on your side.
768-
* @return observation convention
769-
* @param <T> context type
770-
*/
771-
@SuppressWarnings("unchecked")
772-
static <T extends Observation.Context> ObservationConvention<T> noOp() {
773-
return (ObservationConvention<T>) NoopObservationConvention.INSTANCE;
774-
}
775-
776765
/**
777766
* Allows to override the name for an observation.
778767
* @return the new name for the observation

micrometer-observation/src/main/java/io/micrometer/observation/SimpleObservation.java

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

1818
import io.micrometer.common.KeyValue;
1919
import io.micrometer.common.lang.Nullable;
20+
import io.micrometer.common.util.StringUtils;
2021

2122
import java.util.ArrayDeque;
2223
import java.util.Collection;
2324
import java.util.Deque;
24-
import java.util.List;
2525
import java.util.stream.Collectors;
2626

2727
/**
@@ -55,13 +55,15 @@ class SimpleObservation implements Observation {
5555
.filter(handler -> handler.supportsContext(this.context))
5656
.collect(Collectors.toCollection(ArrayDeque::new));
5757
this.filters = registry.observationConfig().getObservationFilters();
58-
List<ObservationConvention<?>> observationConventions = registry.observationConfig().getObservationConventions()
59-
.stream().filter(observationConvention -> observationConvention.supportsContext(this.context))
60-
.collect(Collectors.toList());
61-
if (!observationConventions.isEmpty()) {
62-
this.keyValuesProviders.addAll(observationConventions);
63-
this.context.setName(observationConventions.get(0).getName());
64-
}
58+
registry.observationConfig().getObservationConventions().stream()
59+
.filter(observationConvention -> observationConvention.supportsContext(this.context)).findFirst()
60+
.ifPresent(convention -> {
61+
this.keyValuesProviders.add(convention);
62+
String newName = convention.getName();
63+
if (StringUtils.isNotBlank(newName)) {
64+
this.context.setName(newName);
65+
}
66+
});
6567
}
6668

6769
SimpleObservation(ObservationConvention<?> convention, ObservationRegistry registry, Context context) {
@@ -78,9 +80,14 @@ class SimpleObservation implements Observation {
7880

7981
private static String name(ObservationConvention<?> convention, Context context) {
8082
if (!convention.supportsContext(context)) {
81-
throw new IllegalStateException("Convention [" + convention + "] can't support context [" + context + "]");
83+
throw new IllegalStateException(
84+
"Convention [" + convention + "] doesn't support context [" + context + "]");
85+
}
86+
String name = convention.getName();
87+
if (StringUtils.isNotBlank(name)) {
88+
return name;
8289
}
83-
return convention.getName();
90+
return context.getName();
8491
}
8592

8693
@Override

0 commit comments

Comments
 (0)