|
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