Skip to content

Commit 50b8db5

Browse files
wilkinsonaphilwebb
authored andcommitted
Create spring-boot-micrometer-observation module
Issue: 46150
1 parent c127425 commit 50b8db5

File tree

53 files changed

+629
-327
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+629
-327
lines changed

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ include "spring-boot-project:spring-boot-liquibase"
116116
include "spring-boot-project:spring-boot-neo4j"
117117
include "spring-boot-project:spring-boot-mail"
118118
include "spring-boot-project:spring-boot-metrics"
119+
include "spring-boot-project:spring-boot-micrometer-observation"
119120
include "spring-boot-project:spring-boot-mongodb"
120121
include "spring-boot-project:spring-boot-mustache"
121122
include "spring-boot-project:spring-boot-netty"

spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ dependencies {
5656
optional(project(":spring-boot-project:spring-boot-jsonb"))
5757
optional(project(":spring-boot-project:spring-boot-kafka"))
5858
optional(project(":spring-boot-project:spring-boot-metrics"))
59+
optional(project(":spring-boot-project:spring-boot-micrometer-observation"))
5960
optional(project(":spring-boot-project:spring-boot-opentelemetry"))
6061
optional(project(":spring-boot-project:spring-boot-r2dbc"))
6162
optional(project(":spring-boot-project:spring-boot-restclient"))

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/jersey/JerseyServerMetricsAutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
import org.glassfish.jersey.server.ResourceConfig;
2424

2525
import org.springframework.beans.factory.ObjectProvider;
26-
import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration;
27-
import org.springframework.boot.actuate.autoconfigure.observation.ObservationProperties;
2826
import org.springframework.boot.autoconfigure.AutoConfiguration;
2927
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
3028
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -34,6 +32,8 @@
3432
import org.springframework.boot.jersey.autoconfigure.ResourceConfigCustomizer;
3533
import org.springframework.boot.metrics.OnlyOnceLoggingDenyMeterFilter;
3634
import org.springframework.boot.metrics.autoconfigure.MetricsProperties;
35+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
36+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationProperties;
3737
import org.springframework.context.annotation.Bean;
3838
import org.springframework.core.annotation.Order;
3939

Lines changed: 9 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -14,40 +14,32 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.observation;
17+
package org.springframework.boot.actuate.autoconfigure.observability;
1818

1919
import java.util.List;
2020

2121
import io.micrometer.core.instrument.MeterRegistry;
2222
import io.micrometer.core.instrument.observation.DefaultMeterObservationHandler;
2323
import io.micrometer.core.instrument.observation.DefaultMeterObservationHandler.IgnoredMeters;
2424
import io.micrometer.core.instrument.observation.MeterObservationHandler;
25-
import io.micrometer.observation.GlobalObservationConvention;
2625
import io.micrometer.observation.Observation;
27-
import io.micrometer.observation.ObservationFilter;
28-
import io.micrometer.observation.ObservationHandler;
29-
import io.micrometer.observation.ObservationPredicate;
3026
import io.micrometer.observation.ObservationRegistry;
31-
import io.micrometer.observation.aop.ObservedAspect;
3227
import io.micrometer.tracing.Tracer;
3328
import io.micrometer.tracing.handler.TracingAwareMeterObservationHandler;
3429
import io.micrometer.tracing.handler.TracingObservationHandler;
35-
import org.aspectj.weaver.Advice;
3630

37-
import org.springframework.beans.factory.ObjectProvider;
3831
import org.springframework.boot.actuate.autoconfigure.tracing.MicrometerTracingAutoConfiguration;
3932
import org.springframework.boot.autoconfigure.AutoConfiguration;
4033
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
4134
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
42-
import org.springframework.boot.autoconfigure.condition.ConditionalOnBooleanProperty;
4335
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
4436
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
4537
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
4638
import org.springframework.boot.context.properties.EnableConfigurationProperties;
47-
import org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
39+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationHandlerGrouping;
40+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationProperties;
4841
import org.springframework.context.annotation.Bean;
4942
import org.springframework.context.annotation.Configuration;
50-
import org.springframework.core.annotation.Order;
5143

5244
/**
5345
* {@link EnableAutoConfiguration Auto-configuration} for the Micrometer Observation API.
@@ -58,34 +50,12 @@
5850
* @author Vedran Pavic
5951
* @since 3.0.0
6052
*/
61-
@AutoConfiguration(after = { CompositeMeterRegistryAutoConfiguration.class, MicrometerTracingAutoConfiguration.class })
53+
@AutoConfiguration(
54+
beforeName = "org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration",
55+
afterName = "org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration",
56+
after = MicrometerTracingAutoConfiguration.class)
6257
@ConditionalOnClass(ObservationRegistry.class)
63-
@EnableConfigurationProperties(ObservationProperties.class)
64-
public class ObservationAutoConfiguration {
65-
66-
@Bean
67-
static ObservationRegistryPostProcessor observationRegistryPostProcessor(
68-
ObjectProvider<ObservationRegistryCustomizer<?>> observationRegistryCustomizers,
69-
ObjectProvider<ObservationPredicate> observationPredicates,
70-
ObjectProvider<GlobalObservationConvention<?>> observationConventions,
71-
ObjectProvider<ObservationHandler<?>> observationHandlers,
72-
ObjectProvider<ObservationHandlerGrouping> observationHandlerGrouping,
73-
ObjectProvider<ObservationFilter> observationFilters) {
74-
return new ObservationRegistryPostProcessor(observationRegistryCustomizers, observationPredicates,
75-
observationConventions, observationHandlers, observationHandlerGrouping, observationFilters);
76-
}
77-
78-
@Bean
79-
@ConditionalOnMissingBean
80-
ObservationRegistry observationRegistry() {
81-
return ObservationRegistry.create();
82-
}
83-
84-
@Bean
85-
@Order(0)
86-
PropertiesObservationFilterPredicate propertiesObservationFilter(ObservationProperties properties) {
87-
return new PropertiesObservationFilterPredicate(properties);
88-
}
58+
public class ObservabilityAutoConfiguration {
8959

9060
@Configuration(proxyBeanMethods = false)
9161
@ConditionalOnClass(MeterRegistry.class)
@@ -126,6 +96,7 @@ ObservationHandlerGrouping metricsAndTracingObservationHandlerGrouping() {
12696
@Configuration(proxyBeanMethods = false)
12797
@ConditionalOnBean(MeterRegistry.class)
12898
@ConditionalOnMissingBean(MeterObservationHandler.class)
99+
@EnableConfigurationProperties(ObservationProperties.class)
129100
static class MeterObservationHandlerConfiguration {
130101

131102
@ConditionalOnMissingBean(type = "io.micrometer.tracing.Tracer")
@@ -158,17 +129,4 @@ TracingAwareMeterObservationHandler<Observation.Context> tracingAwareMeterObserv
158129

159130
}
160131

161-
@Configuration(proxyBeanMethods = false)
162-
@ConditionalOnClass(Advice.class)
163-
@ConditionalOnBooleanProperty("management.observations.annotations.enabled")
164-
static class ObservedAspectConfiguration {
165-
166-
@Bean
167-
@ConditionalOnMissingBean
168-
ObservedAspect observedAspect(ObservationRegistry observationRegistry) {
169-
return new ObservedAspect(observationRegistry);
170-
}
171-
172-
}
173-
174132
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2012-present the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
/**
18+
* Auto-configuration for observability (metrics and tracing).
19+
*/
20+
package org.springframework.boot.actuate.autoconfigure.observability;

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/batch/BatchObservationAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919
import io.micrometer.observation.ObservationRegistry;
2020

2121
import org.springframework.batch.core.configuration.annotation.BatchObservabilityBeanPostProcessor;
22-
import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration;
2322
import org.springframework.boot.autoconfigure.AutoConfiguration;
2423
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2524
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2625
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2726
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
27+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
2828
import org.springframework.context.annotation.Bean;
2929

3030
/**

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/graphql/GraphQlObservationAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
import io.micrometer.observation.ObservationRegistry;
2222

2323
import org.springframework.beans.factory.ObjectProvider;
24-
import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration;
2524
import org.springframework.boot.autoconfigure.AutoConfiguration;
2625
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2726
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2827
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2928
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
29+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
3030
import org.springframework.context.annotation.Bean;
3131
import org.springframework.graphql.execution.GraphQlSource;
3232
import org.springframework.graphql.observation.DataFetcherObservationConvention;

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/HttpClientObservationsAutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
import io.micrometer.observation.Observation;
2222
import io.micrometer.observation.ObservationRegistry;
2323

24-
import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration;
25-
import org.springframework.boot.actuate.autoconfigure.observation.ObservationProperties;
2624
import org.springframework.boot.autoconfigure.AutoConfiguration;
2725
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2826
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -32,6 +30,8 @@
3230
import org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
3331
import org.springframework.boot.metrics.autoconfigure.MetricsProperties;
3432
import org.springframework.boot.metrics.autoconfigure.MetricsProperties.Web.Client;
33+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
34+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationProperties;
3535
import org.springframework.context.annotation.Bean;
3636
import org.springframework.context.annotation.Configuration;
3737
import org.springframework.context.annotation.Import;

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
import io.micrometer.observation.ObservationRegistry;
2020

2121
import org.springframework.beans.factory.ObjectProvider;
22-
import org.springframework.boot.actuate.autoconfigure.observation.ObservationProperties;
2322
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2423
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
24+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationProperties;
2525
import org.springframework.boot.restclient.RestClientCustomizer;
2626
import org.springframework.boot.restclient.actuate.observation.ObservationRestClientCustomizer;
2727
import org.springframework.context.annotation.Bean;

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
import io.micrometer.observation.ObservationRegistry;
2020

2121
import org.springframework.beans.factory.ObjectProvider;
22-
import org.springframework.boot.actuate.autoconfigure.observation.ObservationProperties;
2322
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2423
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
24+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationProperties;
2525
import org.springframework.boot.restclient.RestTemplateBuilder;
2626
import org.springframework.boot.restclient.actuate.observation.ObservationRestTemplateCustomizer;
2727
import org.springframework.context.annotation.Bean;

0 commit comments

Comments
 (0)