|
5 | 5 |
|
6 | 6 | package io.opentelemetry.instrumentation.jdbc.internal; |
7 | 7 |
|
| 8 | +import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty; |
8 | 9 | import static java.util.Collections.emptyList; |
9 | 10 |
|
10 | 11 | import io.opentelemetry.api.OpenTelemetry; |
| 12 | +import io.opentelemetry.api.incubator.ExtendedOpenTelemetry; |
| 13 | +import io.opentelemetry.api.incubator.config.ConfigProvider; |
| 14 | +import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties; |
11 | 15 | import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesExtractor; |
12 | 16 | import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeSpanNameExtractor; |
13 | 17 | import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientMetrics; |
@@ -48,11 +52,30 @@ static Instrumenter<DbRequest, Void> createStatementInstrumenter( |
48 | 52 | openTelemetry, |
49 | 53 | emptyList(), |
50 | 54 | true, |
51 | | - ConfigPropertiesUtil.getBoolean( |
52 | | - "otel.instrumentation.common.db-statement-sanitizer.enabled", true), |
| 55 | + isStatementSanitizationEnabled(openTelemetry), |
53 | 56 | captureQueryParameters); |
54 | 57 | } |
55 | 58 |
|
| 59 | + private static boolean isStatementSanitizationEnabled(OpenTelemetry openTelemetry) { |
| 60 | + if (openTelemetry instanceof ExtendedOpenTelemetry) { |
| 61 | + ConfigProvider configProvider = ((ExtendedOpenTelemetry) openTelemetry).getConfigProvider(); |
| 62 | + // we might want to pull the config bridge to instrumentation-api-incubator which we can |
| 63 | + // use here |
| 64 | + DeclarativeConfigProperties properties = configProvider.getInstrumentationConfig(); |
| 65 | + if (properties == null) { |
| 66 | + properties = DeclarativeConfigProperties.empty(); |
| 67 | + } |
| 68 | + return properties |
| 69 | + .getStructured("java", empty()) |
| 70 | + .getStructured("common", empty()) |
| 71 | + .getStructured("db_statement_sanitizer", empty()) |
| 72 | + .getBoolean("enabled", true); |
| 73 | + } |
| 74 | + |
| 75 | + return ConfigPropertiesUtil.getBoolean( |
| 76 | + "otel.instrumentation.common.db-statement-sanitizer.enabled", true); |
| 77 | + } |
| 78 | + |
56 | 79 | public static Instrumenter<DbRequest, Void> createStatementInstrumenter( |
57 | 80 | OpenTelemetry openTelemetry, |
58 | 81 | boolean enabled, |
|
0 commit comments