|
9 | 9 | import io.micrometer.core.instrument.MeterRegistry;
|
10 | 10 | import io.opentelemetry.javaagent.instrumentation.micrometer.v1_5.MicrometerSingletons;
|
11 | 11 | import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration;
|
12 |
| -import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; |
| 12 | +import org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration; |
13 | 13 | import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
|
14 | 14 | import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
15 | 15 | import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
|
19 | 19 | import org.springframework.context.annotation.Configuration;
|
20 | 20 |
|
21 | 21 | @Configuration
|
22 |
| -// see |
23 |
| -// https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/export/prometheus/PrometheusMetricsExportAutoConfiguration.java |
24 |
| -// for an example of how configure a MeterRegistry properly |
25 | 22 | // CompositeMeterRegistryAutoConfiguration configures the "final" composite registry
|
26 |
| -@AutoConfigureBefore({ |
27 |
| - CompositeMeterRegistryAutoConfiguration.class, |
28 |
| - SimpleMetricsExportAutoConfiguration.class |
29 |
| -}) |
30 |
| -@AutoConfigureAfter(MetricsAutoConfiguration.class) |
| 23 | +@AutoConfigureBefore(CompositeMeterRegistryAutoConfiguration.class) |
| 24 | +// configure after the SimpleMeterRegistry has initialized; it is normally the last MeterRegistry |
| 25 | +// implementation to be configured, as it's used as a fallback |
| 26 | +// the OTel registry should be added in addition to that fallback and not replace it |
| 27 | +@AutoConfigureAfter({SimpleMetricsExportAutoConfiguration.class, PrometheusMetricsExportAutoConfiguration.class}) |
31 | 28 | @ConditionalOnBean(Clock.class)
|
32 | 29 | @ConditionalOnClass(MeterRegistry.class)
|
33 | 30 | public class OpenTelemetryMeterRegistryAutoConfiguration {
|
|
0 commit comments