Skip to content

Commit 47eb959

Browse files
committed
Replace builder-extractor back-channel with applyCommonConfig pattern
Each *BuilderUtil now exposes applyCommonConfig(builder, openTelemetry) instead of getBuilderExtractor(). Receiving a *TelemetryBuilder instance proves its <clinit> ran and registered the extractor, which lets callers pass through CommonConfig without a public API change. Drop the now-unused InstrumentationConfigUtil.configure{Server,Client}Builder helpers and inline DbConfig.isQuerySanitizationEnabled at the four remaining call sites.
1 parent 5551b1f commit 47eb959

16 files changed

Lines changed: 144 additions & 144 deletions

File tree

instrumentation/spring/spring-boot-autoconfigure/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ dependencies {
120120
// needed for the Spring Boot 3 support
121121
implementation(project(":instrumentation:spring:spring-webmvc:spring-webmvc-6.0:library"))
122122

123-
// give access to common classes, e.g. InstrumentationConfigUtil
123+
// give access to common classes
124124
add("javaSpring3CompileOnly", files(sourceSets.main.get().output.classesDirs))
125125
add("javaSpring3CompileOnly", "org.springframework.boot:spring-boot-starter-web:3.2.4")
126126
add("javaSpring3CompileOnly", "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/jdbc/DataSourcePostProcessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
import com.google.errorprone.annotations.CanIgnoreReturnValue;
99
import io.opentelemetry.api.OpenTelemetry;
1010
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
11+
import io.opentelemetry.instrumentation.api.incubator.config.internal.DbConfig;
1112
import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil;
1213
import io.opentelemetry.instrumentation.jdbc.datasource.JdbcTelemetry;
1314
import io.opentelemetry.instrumentation.jdbc.datasource.JdbcTelemetryBuilder;
1415
import io.opentelemetry.instrumentation.jdbc.datasource.internal.Experimental;
15-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
1616
import java.io.PrintWriter;
1717
import java.sql.Connection;
1818
import java.sql.SQLException;
@@ -64,7 +64,7 @@ public Object postProcessAfterInitialization(Object bean, String beanName) {
6464
JdbcTelemetryBuilder builder =
6565
JdbcTelemetry.builder(openTelemetry)
6666
.setQuerySanitizationEnabled(
67-
InstrumentationConfigUtil.isQuerySanitizationEnabled(openTelemetry, "jdbc"))
67+
DbConfig.isQuerySanitizationEnabled(openTelemetry, "jdbc"))
6868
.setCaptureQueryParameters(
6969
config.getBoolean("capture_query_parameters/development", false))
7070
.setTransactionInstrumenterEnabled(

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/mongo/MongoClientInstrumentationAutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
import com.mongodb.MongoClientSettings;
99
import io.opentelemetry.api.OpenTelemetry;
10+
import io.opentelemetry.instrumentation.api.incubator.config.internal.DbConfig;
1011
import io.opentelemetry.instrumentation.mongo.v3_1.MongoTelemetry;
1112
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation;
12-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
1313
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1414
import org.springframework.boot.autoconfigure.mongo.MongoClientSettingsBuilderCustomizer;
1515
import org.springframework.context.annotation.Bean;
@@ -33,7 +33,7 @@ MongoClientSettingsBuilderCustomizer customizer(OpenTelemetry openTelemetry) {
3333
builder.addCommandListener(
3434
MongoTelemetry.builder(openTelemetry)
3535
.setQuerySanitizationEnabled(
36-
InstrumentationConfigUtil.isQuerySanitizationEnabled(openTelemetry, "mongo"))
36+
DbConfig.isQuerySanitizationEnabled(openTelemetry, "mongo"))
3737
.build()
3838
.createCommandListener());
3939
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/r2dbc/R2dbcInstrumentingPostProcessor.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
package io.opentelemetry.instrumentation.spring.autoconfigure.internal.instrumentation.r2dbc;
77

88
import io.opentelemetry.api.OpenTelemetry;
9+
import io.opentelemetry.instrumentation.api.incubator.config.internal.DbConfig;
910
import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.shaded.R2dbcTelemetry;
10-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
1111
import io.r2dbc.spi.ConnectionFactory;
1212
import io.r2dbc.spi.ConnectionFactoryOptions;
1313
import org.springframework.aop.scope.ScopedProxyUtils;
@@ -29,8 +29,7 @@ public Object postProcessAfterInitialization(Object bean, String beanName) {
2929
ConnectionFactory connectionFactory = (ConnectionFactory) bean;
3030
OpenTelemetry openTelemetry = openTelemetryProvider.getObject();
3131
return R2dbcTelemetry.builder(openTelemetry)
32-
.setQuerySanitizationEnabled(
33-
InstrumentationConfigUtil.isQuerySanitizationEnabled(openTelemetry, "r2dbc"))
32+
.setQuerySanitizationEnabled(DbConfig.isQuerySanitizationEnabled(openTelemetry, "r2dbc"))
3433
.build()
3534
.wrapConnectionFactory(connectionFactory, getConnectionFactoryOptions(connectionFactory));
3635
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/web/RestTemplateInstrumentation.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import com.google.errorprone.annotations.CanIgnoreReturnValue;
99
import io.opentelemetry.api.OpenTelemetry;
10-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
1110
import io.opentelemetry.instrumentation.spring.web.v3_1.SpringWebTelemetry;
1211
import io.opentelemetry.instrumentation.spring.web.v3_1.internal.WebTelemetryUtil;
1312
import java.util.List;
@@ -22,10 +21,7 @@ private RestTemplateInstrumentation() {}
2221
static RestTemplate addIfNotPresent(RestTemplate restTemplate, OpenTelemetry openTelemetry) {
2322

2423
ClientHttpRequestInterceptor instrumentationInterceptor =
25-
InstrumentationConfigUtil.configureClientBuilder(
26-
openTelemetry,
27-
SpringWebTelemetry.builder(openTelemetry),
28-
WebTelemetryUtil.getBuilderExtractor())
24+
WebTelemetryUtil.applyCommonConfig(SpringWebTelemetry.builder(openTelemetry), openTelemetry)
2925
.build()
3026
.createInterceptor();
3127

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/webflux/WebClientBeanPostProcessor.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package io.opentelemetry.instrumentation.spring.autoconfigure.internal.instrumentation.webflux;
77

88
import io.opentelemetry.api.OpenTelemetry;
9-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
109
import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxClientTelemetry;
1110
import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxServerTelemetry;
1211
import io.opentelemetry.instrumentation.spring.webflux.v5_3.internal.SpringWebfluxBuilderUtil;
@@ -32,18 +31,14 @@ final class WebClientBeanPostProcessor implements BeanPostProcessor {
3231
}
3332

3433
static SpringWebfluxClientTelemetry getWebfluxClientTelemetry(OpenTelemetry openTelemetry) {
35-
return InstrumentationConfigUtil.configureClientBuilder(
36-
openTelemetry,
37-
SpringWebfluxClientTelemetry.builder(openTelemetry),
38-
SpringWebfluxBuilderUtil.getClientBuilderExtractor())
34+
return SpringWebfluxBuilderUtil.applyClientCommonConfig(
35+
SpringWebfluxClientTelemetry.builder(openTelemetry), openTelemetry)
3936
.build();
4037
}
4138

4239
static SpringWebfluxServerTelemetry getWebfluxServerTelemetry(OpenTelemetry openTelemetry) {
43-
return InstrumentationConfigUtil.configureServerBuilder(
44-
openTelemetry,
45-
SpringWebfluxServerTelemetry.builder(openTelemetry),
46-
SpringWebfluxBuilderUtil.getServerBuilderExtractor())
40+
return SpringWebfluxBuilderUtil.applyServerCommonConfig(
41+
SpringWebfluxServerTelemetry.builder(openTelemetry), openTelemetry)
4742
.build();
4843
}
4944

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/webmvc/SpringWebMvc5InstrumentationAutoConfiguration.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import io.opentelemetry.api.OpenTelemetry;
99
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation;
10-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
1110
import io.opentelemetry.instrumentation.spring.webmvc.v5_3.SpringWebMvcTelemetry;
1211
import io.opentelemetry.instrumentation.spring.webmvc.v5_3.internal.SpringMvcBuilderUtil;
1312
import javax.servlet.Filter;
@@ -28,10 +27,8 @@ public class SpringWebMvc5InstrumentationAutoConfiguration {
2827

2928
@Bean
3029
Filter otelWebMvcFilter(OpenTelemetry openTelemetry) {
31-
return InstrumentationConfigUtil.configureServerBuilder(
32-
openTelemetry,
33-
SpringWebMvcTelemetry.builder(openTelemetry),
34-
SpringMvcBuilderUtil.getBuilderExtractor())
30+
return SpringMvcBuilderUtil.applyCommonConfig(
31+
SpringWebMvcTelemetry.builder(openTelemetry), openTelemetry)
3532
.build()
3633
.createServletFilter();
3734
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/properties/InstrumentationConfigUtil.java

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

instrumentation/spring/spring-boot-autoconfigure/src/main/javaSpring3/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/web/RestClientBeanPostProcessor.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package io.opentelemetry.instrumentation.spring.autoconfigure.internal.instrumentation.web;
77

88
import io.opentelemetry.api.OpenTelemetry;
9-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
109
import io.opentelemetry.instrumentation.spring.web.v3_1.SpringWebTelemetry;
1110
import io.opentelemetry.instrumentation.spring.web.v3_1.internal.WebTelemetryUtil;
1211
import java.util.List;
@@ -59,10 +58,8 @@ private static boolean isInterceptorNotPresent(
5958
}
6059

6160
static ClientHttpRequestInterceptor getInterceptor(OpenTelemetry openTelemetry) {
62-
return InstrumentationConfigUtil.configureClientBuilder(
63-
openTelemetry,
64-
SpringWebTelemetry.builder(openTelemetry),
65-
WebTelemetryUtil.getBuilderExtractor())
61+
return WebTelemetryUtil.applyCommonConfig(
62+
SpringWebTelemetry.builder(openTelemetry), openTelemetry)
6663
.build()
6764
.createInterceptor();
6865
}

instrumentation/spring/spring-boot-autoconfigure/src/main/javaSpring3/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/webmvc/SpringWebMvc6InstrumentationAutoConfiguration.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import io.opentelemetry.api.OpenTelemetry;
99
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation;
10-
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
1110
import io.opentelemetry.instrumentation.spring.webmvc.v6_0.SpringWebMvcTelemetry;
1211
import io.opentelemetry.instrumentation.spring.webmvc.v6_0.internal.SpringMvcBuilderUtil;
1312
import jakarta.servlet.Filter;
@@ -28,10 +27,8 @@ public class SpringWebMvc6InstrumentationAutoConfiguration {
2827

2928
@Bean
3029
Filter otelWebMvcFilter(OpenTelemetry openTelemetry) {
31-
return InstrumentationConfigUtil.configureServerBuilder(
32-
openTelemetry,
33-
SpringWebMvcTelemetry.builder(openTelemetry),
34-
SpringMvcBuilderUtil.getBuilderExtractor())
30+
return SpringMvcBuilderUtil.applyCommonConfig(
31+
SpringWebMvcTelemetry.builder(openTelemetry), openTelemetry)
3532
.build()
3633
.createServletFilter();
3734
}

0 commit comments

Comments
 (0)