Skip to content

Commit a8325cb

Browse files
committed
use extended opentelemetry
1 parent eb8720f commit a8325cb

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

instrumentation/jdbc/library/build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,10 @@ tasks {
6565
jvmArgs("-Dotel.instrumentation.jdbc.experimental.transaction.enabled=true")
6666
}
6767
}
68+
69+
// todo remove when the next release is published
70+
configurations.all {
71+
resolutionStrategy {
72+
force("io.opentelemetry:opentelemetry-api-incubator:1.53.0-alpha-SNAPSHOT")
73+
}
74+
}

instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/internal/JdbcInstrumenterFactory.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
55

66
package io.opentelemetry.instrumentation.jdbc.internal;
77

8+
import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;
89
import static java.util.Collections.emptyList;
910

1011
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;
1115
import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeAttributesExtractor;
1216
import io.opentelemetry.instrumentation.api.incubator.semconv.code.CodeSpanNameExtractor;
1317
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientMetrics;
@@ -48,11 +52,30 @@ static Instrumenter<DbRequest, Void> createStatementInstrumenter(
4852
openTelemetry,
4953
emptyList(),
5054
true,
51-
ConfigPropertiesUtil.getBoolean(
52-
"otel.instrumentation.common.db-statement-sanitizer.enabled", true),
55+
isStatementSanitizationEnabled(openTelemetry),
5356
captureQueryParameters);
5457
}
5558

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+
5679
public static Instrumenter<DbRequest, Void> createStatementInstrumenter(
5780
OpenTelemetry openTelemetry,
5881
boolean enabled,

0 commit comments

Comments
 (0)