File tree Expand file tree Collapse file tree 3 files changed +22
-9
lines changed
instrumentation/spring/spring-boot-actuator-autoconfigure-2.0/javaagent
src/main/java/io/opentelemetry/javaagent/instrumentation/spring/actuator/v2_0 Expand file tree Collapse file tree 3 files changed +22
-9
lines changed Original file line number Diff line number Diff line change @@ -12,17 +12,22 @@ muzzle {
1212 }
1313}
1414
15+ val latestDepTest = findProperty(" testLatestDeps" ) as Boolean
16+
1517dependencies {
1618 library(" org.springframework.boot:spring-boot-actuator-autoconfigure:2.0.0.RELEASE" )
1719 library(" io.micrometer:micrometer-core:1.5.0" )
1820 testLibrary(" io.micrometer:micrometer-registry-prometheus:1.0.1" )
1921
22+ if (latestDepTest) {
23+ // Micrometer moved into its own Spring Boot starter in version 4
24+ testLibrary(" org.springframework.boot:spring-boot-starter-micrometer-metrics:4.0.0" )
25+ }
26+
2027 implementation(project(" :instrumentation:micrometer:micrometer-1.5:javaagent" ))
2128
2229 // dependency management pins logback-classic to 1.3 which is the last release that supports java 8
2330 latestDepTestLibrary(" ch.qos.logback:logback-classic:latest.release" )
24- // tests don't work with spring boot 4 yet
25- latestDepTestLibrary(" org.springframework.boot:spring-boot-actuator-autoconfigure:3.+" ) // documented limitation
2631}
2732
2833tasks.withType<Test >().configureEach {
@@ -33,8 +38,6 @@ tasks.withType<Test>().configureEach {
3338 jvmArgs(" -Dotel.instrumentation.spring-boot-actuator-autoconfigure.enabled=true" )
3439}
3540
36- val latestDepTest = findProperty(" testLatestDeps" ) as Boolean
37-
3841// spring 6 (spring boot 3) requires java 17
3942if (latestDepTest) {
4043 otelJava {
Original file line number Diff line number Diff line change @@ -39,7 +39,11 @@ public static class GetCandidateConfigurationsAdvice {
3939 public static List <String > onExit (@ Advice .Return List <String > originalConfigurations ) {
4040 List <String > configurations = originalConfigurations ;
4141 if (configurations .contains (
42- "org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration" )) {
42+ // Spring Boot 2.x-3.x location
43+ "org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration" )
44+ || configurations .contains (
45+ // Spring Boot 4.x location
46+ "org.springframework.boot.micrometer.metrics.autoconfigure.MetricsAutoConfiguration" )) {
4347 List <String > configs = new ArrayList <>(configurations .size () + 1 );
4448 configs .addAll (configurations );
4549 // using class reference here so that muzzle will consider it a dependency of this advice
Original file line number Diff line number Diff line change 1616import java .util .List ;
1717import java .util .Set ;
1818import org .springframework .beans .factory .config .BeanPostProcessor ;
19- import org .springframework .boot .actuate .autoconfigure .metrics .CompositeMeterRegistryAutoConfiguration ;
20- import org .springframework .boot .actuate .autoconfigure .metrics .export .simple .SimpleMetricsExportAutoConfiguration ;
2119import org .springframework .boot .autoconfigure .AutoConfigureAfter ;
2220import org .springframework .boot .autoconfigure .AutoConfigureBefore ;
2321import org .springframework .boot .autoconfigure .condition .ConditionalOnBean ;
2725
2826@ Configuration
2927// CompositeMeterRegistryAutoConfiguration configures the "final" composite registry
30- @ AutoConfigureBefore (CompositeMeterRegistryAutoConfiguration .class )
28+ @ AutoConfigureBefore (
29+ name = {
30+ "org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration" , // Spring Boot 2.x-3.x location
31+ "org.springframework.boot.micrometer.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration" // Spring Boot 4.x location
32+ })
3133// configure after the SimpleMeterRegistry has initialized; it is normally the last MeterRegistry
3234// implementation to be configured, as it's used as a fallback
3335// the OTel registry should be added in addition to that fallback and not replace it
34- @ AutoConfigureAfter (SimpleMetricsExportAutoConfiguration .class )
36+ @ AutoConfigureAfter (
37+ name = {
38+ "org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration" , // Spring Boot 2.x-3.x location
39+ "org.springframework.boot.micrometer.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration" // Spring Boot 4.x location
40+ })
3541@ ConditionalOnBean (Clock .class )
3642@ ConditionalOnClass (MeterRegistry .class )
3743public class OpenTelemetryMeterRegistryAutoConfiguration {
You can’t perform that action at this time.
0 commit comments