Skip to content

Commit 78a64d7

Browse files
Allow DefaultMeterObservationHandler to be replaced by user's bean
Closes gh-32462 Co-authored-by: Jonatan Ivanov <[email protected]>
1 parent 4a80b36 commit 78a64d7

File tree

4 files changed

+9
-99
lines changed

4 files changed

+9
-99
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/DefaultMeterObservationHandlerObservationRegistryCustomizer.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/ObservationAutoConfiguration.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
package org.springframework.boot.actuate.autoconfigure.observation;
1818

1919
import io.micrometer.core.instrument.MeterRegistry;
20+
import io.micrometer.core.instrument.observation.DefaultMeterObservationHandler;
21+
import io.micrometer.core.instrument.observation.MeterObservationHandler;
2022
import io.micrometer.observation.GlobalObservationConvention;
2123
import io.micrometer.observation.ObservationHandler;
2224
import io.micrometer.observation.ObservationPredicate;
@@ -66,9 +68,9 @@ ObservationRegistry observationRegistry() {
6668
static class MetricsConfiguration {
6769

6870
@Bean
69-
DefaultMeterObservationHandlerObservationRegistryCustomizer enableDefaultMeterObservationHandler(
70-
MeterRegistry meterRegistry) {
71-
return new DefaultMeterObservationHandlerObservationRegistryCustomizer(meterRegistry);
71+
@ConditionalOnMissingBean(MeterObservationHandler.class)
72+
DefaultMeterObservationHandler defaultMeterObservationHandler(MeterRegistry meterRegistry) {
73+
return new DefaultMeterObservationHandler(meterRegistry);
7274
}
7375

7476
}

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/DefaultMeterObservationHandlerObservationRegistryCustomizerTests.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/ObservationAutoConfigurationTests.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import io.micrometer.common.KeyValue;
2323
import io.micrometer.common.KeyValues;
2424
import io.micrometer.core.instrument.MeterRegistry;
25+
import io.micrometer.core.instrument.observation.DefaultMeterObservationHandler;
2526
import io.micrometer.core.instrument.observation.MeterObservationHandler;
2627
import io.micrometer.core.instrument.search.MeterNotFoundException;
2728
import io.micrometer.observation.GlobalObservationConvention;
@@ -67,6 +68,7 @@ class ObservationAutoConfigurationTests {
6768
@Test
6869
void autoConfiguresDefaultMeterObservationHandler() {
6970
this.contextRunner.run((context) -> {
71+
assertThat(context).hasSingleBean(DefaultMeterObservationHandler.class);
7072
ObservationRegistry observationRegistry = context.getBean(ObservationRegistry.class);
7173
Observation.start("test-observation", observationRegistry).stop();
7274
// When a DefaultMeterObservationHandler is registered, every stopped
@@ -76,13 +78,6 @@ void autoConfiguresDefaultMeterObservationHandler() {
7678
});
7779
}
7880

79-
@Test
80-
void allowsDefaultMeterObservationHandlerToBeDisabled() {
81-
this.contextRunner.withClassLoader(new FilteredClassLoader(MeterRegistry.class))
82-
.run((context) -> assertThat(context)
83-
.doesNotHaveBean(DefaultMeterObservationHandlerObservationRegistryCustomizer.class));
84-
}
85-
8681
@Test
8782
void autoConfiguresObservationPredicates() {
8883
this.contextRunner.withUserConfiguration(ObservationPredicates.class).run((context) -> {
@@ -109,11 +104,12 @@ void autoConfiguresGlobalKeyValuesProvider() {
109104
}
110105

111106
@Test
112-
void autoConfiguresObservationHandler() {
107+
void autoConfiguresObservationHandlers() {
113108
this.contextRunner.withUserConfiguration(ObservationHandlers.class).run((context) -> {
114109
ObservationRegistry observationRegistry = context.getBean(ObservationRegistry.class);
115110
List<ObservationHandler<?>> handlers = context.getBean(CalledHandlers.class).getCalledHandlers();
116111
Observation.start("test-observation", observationRegistry);
112+
assertThat(context).doesNotHaveBean(DefaultMeterObservationHandler.class);
117113
assertThat(handlers).hasSize(2);
118114
// Regular handlers are registered first
119115
assertThat(handlers.get(0)).isInstanceOf(CustomObservationHandler.class);

0 commit comments

Comments
 (0)