Skip to content

Commit cc4715a

Browse files
committed
use InstrumentationConfig for encapsulation
1 parent 08947c9 commit cc4715a

21 files changed

+86
-90
lines changed

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/EmbeddedConfigFile.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
16
package io.opentelemetry.instrumentation.spring.autoconfigure;
27

38
import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration;

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,7 @@ public OpenTelemetry openTelemetry(
132132
}
133133

134134
@Bean
135-
public InstrumentationConfig instrumentationConfig(
136-
ConfigProperties properties) {
135+
public InstrumentationConfig instrumentationConfig(ConfigProperties properties) {
137136
return new ConfigPropertiesBridge(properties);
138137
}
139138

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

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

88
import com.google.errorprone.annotations.CanIgnoreReturnValue;
99
import io.opentelemetry.api.OpenTelemetry;
10+
import io.opentelemetry.instrumentation.api.incubator.config.internal.InstrumentationConfig;
1011
import io.opentelemetry.instrumentation.jdbc.datasource.JdbcTelemetry;
1112
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
12-
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1313
import javax.sql.DataSource;
1414
import org.springframework.aop.scope.ScopedProxyUtils;
1515
import org.springframework.beans.factory.ObjectProvider;
@@ -21,13 +21,13 @@ final class DataSourcePostProcessor implements BeanPostProcessor, Ordered {
2121
private static final Class<?> ROUTING_DATA_SOURCE_CLASS = getRoutingDataSourceClass();
2222

2323
private final ObjectProvider<OpenTelemetry> openTelemetryProvider;
24-
private final ObjectProvider<ConfigProperties> configPropertiesProvider;
24+
private final ObjectProvider<InstrumentationConfig> configProvider;
2525

2626
DataSourcePostProcessor(
2727
ObjectProvider<OpenTelemetry> openTelemetryProvider,
28-
ObjectProvider<ConfigProperties> configPropertiesProvider) {
28+
ObjectProvider<InstrumentationConfig> configProvider) {
2929
this.openTelemetryProvider = openTelemetryProvider;
30-
this.configPropertiesProvider = configPropertiesProvider;
30+
this.configProvider = configProvider;
3131
}
3232

3333
private static Class<?> getRoutingDataSourceClass() {
@@ -50,20 +50,17 @@ public Object postProcessAfterInitialization(Object bean, String beanName) {
5050
&& !isRoutingDatasource(bean)
5151
&& !ScopedProxyUtils.isScopedTarget(beanName)) {
5252
DataSource dataSource = (DataSource) bean;
53+
InstrumentationConfig config = configProvider.getObject();
5354
return JdbcTelemetry.builder(openTelemetryProvider.getObject())
5455
.setStatementSanitizationEnabled(
5556
InstrumentationConfigUtil.isStatementSanitizationEnabled(
56-
configPropertiesProvider.getObject(),
57-
"otel.instrumentation.jdbc.statement-sanitizer.enabled"))
57+
config, "otel.instrumentation.jdbc.statement-sanitizer.enabled"))
5858
.setCaptureQueryParameters(
59-
configPropertiesProvider
60-
.getObject()
61-
.getBoolean(
62-
"otel.instrumentation.jdbc.experimental.capture-query-parameters", false))
59+
config.getBoolean(
60+
"otel.instrumentation.jdbc.experimental.capture-query-parameters", false))
6361
.setTransactionInstrumenterEnabled(
64-
configPropertiesProvider
65-
.getObject()
66-
.getBoolean("otel.instrumentation.jdbc.experimental.transaction.enabled", false))
62+
config.getBoolean(
63+
"otel.instrumentation.jdbc.experimental.transaction.enabled", false))
6764
.build()
6865
.wrap(dataSource);
6966
}

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

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

88
import io.opentelemetry.api.OpenTelemetry;
9+
import io.opentelemetry.instrumentation.api.incubator.config.internal.InstrumentationConfig;
910
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation;
10-
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1111
import javax.sql.DataSource;
1212
import org.springframework.beans.factory.ObjectProvider;
1313
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -33,7 +33,7 @@ public JdbcInstrumentationAutoConfiguration() {}
3333
// static to avoid "is not eligible for getting processed by all BeanPostProcessors" warning
3434
static DataSourcePostProcessor dataSourcePostProcessor(
3535
ObjectProvider<OpenTelemetry> openTelemetryProvider,
36-
ObjectProvider<ConfigProperties> configPropertiesProvider) {
37-
return new DataSourcePostProcessor(openTelemetryProvider, configPropertiesProvider);
36+
ObjectProvider<InstrumentationConfig> configProvider) {
37+
return new DataSourcePostProcessor(openTelemetryProvider, configProvider);
3838
}
3939
}

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/kafka/KafkaInstrumentationAutoConfiguration.java

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

88
import io.opentelemetry.api.OpenTelemetry;
9+
import io.opentelemetry.instrumentation.api.incubator.config.internal.InstrumentationConfig;
910
import io.opentelemetry.instrumentation.kafkaclients.v2_6.KafkaTelemetry;
1011
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation;
1112
import io.opentelemetry.instrumentation.spring.kafka.v2_7.SpringKafkaTelemetry;
12-
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1313
import org.springframework.beans.factory.ObjectProvider;
1414
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1515
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -38,10 +38,10 @@ DefaultKafkaProducerFactoryCustomizer otelKafkaProducerFactoryCustomizer(
3838
@Bean
3939
static SpringKafkaTelemetry getTelemetry(
4040
ObjectProvider<OpenTelemetry> openTelemetryProvider,
41-
ObjectProvider<ConfigProperties> configPropertiesProvider) {
41+
ObjectProvider<InstrumentationConfig> configProvider) {
4242
return SpringKafkaTelemetry.builder(openTelemetryProvider.getObject())
4343
.setCaptureExperimentalSpanAttributes(
44-
configPropertiesProvider
44+
configProvider
4545
.getObject()
4646
.getBoolean("otel.instrumentation.kafka.experimental-span-attributes", false))
4747
.build();
@@ -56,8 +56,8 @@ static SpringKafkaTelemetry getTelemetry(
5656
static ConcurrentKafkaListenerContainerFactoryPostProcessor
5757
otelKafkaListenerContainerFactoryBeanPostProcessor(
5858
ObjectProvider<OpenTelemetry> openTelemetryProvider,
59-
ObjectProvider<ConfigProperties> configPropertiesProvider) {
59+
ObjectProvider<InstrumentationConfig> configProvider) {
6060
return new ConcurrentKafkaListenerContainerFactoryPostProcessor(
61-
() -> getTelemetry(openTelemetryProvider, configPropertiesProvider));
61+
() -> getTelemetry(openTelemetryProvider, configProvider));
6262
}
6363
}

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,10 +7,10 @@
77

88
import com.mongodb.MongoClientSettings;
99
import io.opentelemetry.api.OpenTelemetry;
10+
import io.opentelemetry.instrumentation.api.incubator.config.internal.InstrumentationConfig;
1011
import io.opentelemetry.instrumentation.mongo.v3_1.MongoTelemetry;
1112
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation;
1213
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
13-
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1414
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
1515
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
1616
import org.springframework.boot.autoconfigure.mongo.MongoClientSettingsBuilderCustomizer;
@@ -29,7 +29,7 @@ public class MongoClientInstrumentationAutoConfiguration {
2929

3030
@Bean
3131
MongoClientSettingsBuilderCustomizer customizer(
32-
OpenTelemetry openTelemetry, ConfigProperties config) {
32+
OpenTelemetry openTelemetry, InstrumentationConfig config) {
3333
return builder ->
3434
builder.addCommandListener(
3535
MongoTelemetry.builder(openTelemetry)

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

Lines changed: 3 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.InstrumentationConfig;
910
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation;
10-
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1111
import io.r2dbc.spi.ConnectionFactory;
1212
import org.springframework.beans.factory.ObjectProvider;
1313
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -31,7 +31,7 @@ public R2dbcInstrumentationAutoConfiguration() {}
3131
// static to avoid "is not eligible for getting processed by all BeanPostProcessors" warning
3232
static R2dbcInstrumentingPostProcessor r2dbcInstrumentingPostProcessor(
3333
ObjectProvider<OpenTelemetry> openTelemetryProvider,
34-
ObjectProvider<ConfigProperties> configPropertiesProvider) {
35-
return new R2dbcInstrumentingPostProcessor(openTelemetryProvider, configPropertiesProvider);
34+
ObjectProvider<InstrumentationConfig> configProvider) {
35+
return new R2dbcInstrumentingPostProcessor(openTelemetryProvider, configProvider);
3636
}
3737
}

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
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.InstrumentationConfig;
910
import io.opentelemetry.instrumentation.r2dbc.v1_0.internal.shaded.R2dbcTelemetry;
1011
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.properties.InstrumentationConfigUtil;
11-
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1212
import io.r2dbc.spi.ConnectionFactory;
1313
import io.r2dbc.spi.ConnectionFactoryOptions;
1414
import org.springframework.aop.scope.ScopedProxyUtils;
@@ -19,13 +19,13 @@
1919
class R2dbcInstrumentingPostProcessor implements BeanPostProcessor {
2020

2121
private final ObjectProvider<OpenTelemetry> openTelemetryProvider;
22-
private final ObjectProvider<ConfigProperties> configPropertiesProvider;
22+
private final ObjectProvider<InstrumentationConfig> configProvider;
2323

2424
R2dbcInstrumentingPostProcessor(
2525
ObjectProvider<OpenTelemetry> openTelemetryProvider,
26-
ObjectProvider<ConfigProperties> configPropertiesProvider) {
26+
ObjectProvider<InstrumentationConfig> configProvider) {
2727
this.openTelemetryProvider = openTelemetryProvider;
28-
this.configPropertiesProvider = configPropertiesProvider;
28+
this.configProvider = configProvider;
2929
}
3030

3131
@Override
@@ -35,7 +35,7 @@ public Object postProcessAfterInitialization(Object bean, String beanName) {
3535
return R2dbcTelemetry.builder(openTelemetryProvider.getObject())
3636
.setStatementSanitizationEnabled(
3737
InstrumentationConfigUtil.isStatementSanitizationEnabled(
38-
configPropertiesProvider.getObject(),
38+
configProvider.getObject(),
3939
"otel.instrumentation.r2dbc.statement-sanitizer.enabled"))
4040
.build()
4141
.wrapConnectionFactory(connectionFactory, getConnectionFactoryOptions(connectionFactory));

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/scheduling/SpringSchedulingInstrumentationAspect.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
import io.opentelemetry.api.common.AttributeKey;
1010
import io.opentelemetry.context.Context;
1111
import io.opentelemetry.context.Scope;
12+
import io.opentelemetry.instrumentation.api.incubator.config.internal.InstrumentationConfig;
1213
import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesExtractor;
1314
import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesGetter;
1415
import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeSpanNameExtractor;
1516
import io.opentelemetry.instrumentation.api.incubator.semconv.util.ClassAndMethod;
1617
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1718
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
1819
import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder;
19-
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
2020
import org.aspectj.lang.ProceedingJoinPoint;
2121
import org.aspectj.lang.annotation.Around;
2222
import org.aspectj.lang.annotation.Aspect;
@@ -43,7 +43,7 @@ final class SpringSchedulingInstrumentationAspect {
4343
private final Instrumenter<ClassAndMethod, Object> instrumenter;
4444

4545
public SpringSchedulingInstrumentationAspect(
46-
OpenTelemetry openTelemetry, ConfigProperties configProperties) {
46+
OpenTelemetry openTelemetry, InstrumentationConfig config) {
4747
CodeAttributesGetter<ClassAndMethod> codedAttributesGetter =
4848
ClassAndMethod.codeAttributesGetter();
4949
InstrumenterBuilder<ClassAndMethod, Object> builder =
@@ -52,7 +52,7 @@ public SpringSchedulingInstrumentationAspect(
5252
INSTRUMENTATION_NAME,
5353
CodeSpanNameExtractor.create(codedAttributesGetter))
5454
.addAttributesExtractor(CodeAttributesExtractor.create(codedAttributesGetter));
55-
if (configProperties.getBoolean(
55+
if (config.getBoolean(
5656
"otel.instrumentation.spring-scheduling.experimental-span-attributes", false)) {
5757
builder.addAttributesExtractor(
5858
AttributesExtractor.constant(AttributeKey.stringKey("job.system"), "spring_scheduling"));

instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/scheduling/SpringSchedulingInstrumentationAutoConfiguration.java

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

88
import io.opentelemetry.api.OpenTelemetry;
9+
import io.opentelemetry.instrumentation.api.incubator.config.internal.InstrumentationConfig;
910
import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation;
10-
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1111
import org.aspectj.lang.annotation.Aspect;
1212
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
1313
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -28,7 +28,7 @@
2828
class SpringSchedulingInstrumentationAutoConfiguration {
2929
@Bean
3030
SpringSchedulingInstrumentationAspect springSchedulingInstrumentationAspect(
31-
OpenTelemetry openTelemetry, ConfigProperties configProperties) {
32-
return new SpringSchedulingInstrumentationAspect(openTelemetry, configProperties);
31+
OpenTelemetry openTelemetry, InstrumentationConfig config) {
32+
return new SpringSchedulingInstrumentationAspect(openTelemetry, config);
3333
}
3434
}

0 commit comments

Comments
 (0)