|
7 | 7 |
|
8 | 8 | import io.opentelemetry.api.OpenTelemetry;
|
9 | 9 | import io.opentelemetry.instrumentation.r2dbc.v1_0.R2dbcTelemetry;
|
| 10 | +import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; |
10 | 11 | import io.r2dbc.spi.ConnectionFactory;
|
11 | 12 | import io.r2dbc.spi.ConnectionFactoryOptions;
|
12 | 13 | import org.springframework.aop.scope.ScopedProxyUtils;
|
|
17 | 18 | class R2dbcInstrumentingPostProcessor implements BeanPostProcessor {
|
18 | 19 |
|
19 | 20 | private final ObjectProvider<OpenTelemetry> openTelemetryProvider;
|
20 |
| - private final boolean statementSanitizationEnabled; |
| 21 | + private final ObjectProvider<ConfigProperties> configPropertiesProvider; |
21 | 22 |
|
22 | 23 | R2dbcInstrumentingPostProcessor(
|
23 |
| - ObjectProvider<OpenTelemetry> openTelemetryProvider, boolean statementSanitizationEnabled) { |
| 24 | + ObjectProvider<OpenTelemetry> openTelemetryProvider, |
| 25 | + ObjectProvider<ConfigProperties> configPropertiesProvider) { |
24 | 26 | this.openTelemetryProvider = openTelemetryProvider;
|
25 |
| - this.statementSanitizationEnabled = statementSanitizationEnabled; |
| 27 | + this.configPropertiesProvider = configPropertiesProvider; |
26 | 28 | }
|
27 | 29 |
|
28 | 30 | @Override
|
29 | 31 | public Object postProcessAfterInitialization(Object bean, String beanName) {
|
30 | 32 | if (bean instanceof ConnectionFactory && !ScopedProxyUtils.isScopedTarget(beanName)) {
|
31 | 33 | ConnectionFactory connectionFactory = (ConnectionFactory) bean;
|
32 | 34 | return R2dbcTelemetry.builder(openTelemetryProvider.getObject())
|
33 |
| - .setStatementSanitizationEnabled(statementSanitizationEnabled) |
| 35 | + .setStatementSanitizationEnabled( |
| 36 | + configPropertiesProvider |
| 37 | + .getObject() |
| 38 | + .getBoolean("otel.instrumentation.common.db-statement-sanitizer.enabled", true)) |
34 | 39 | .build()
|
35 | 40 | .wrapConnectionFactory(connectionFactory, getConnectionFactoryOptions(connectionFactory));
|
36 | 41 | }
|
|
0 commit comments