Skip to content

Commit cf3b05d

Browse files
committed
avoid double bridge
1 parent 7e37f88 commit cf3b05d

File tree

2 files changed

+28
-12
lines changed
  • instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal
  • instrumentation/aws-sdk/aws-sdk-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v2_2

2 files changed

+28
-12
lines changed

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/internal/ConfigPropertiesUtil.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -150,20 +150,26 @@ private static DeclarativeConfigProperties getDeclarativeConfigNode(
150150
if (isDeclarativeConfig(openTelemetry)) {
151151
ExtendedOpenTelemetry extendedOpenTelemetry = (ExtendedOpenTelemetry) openTelemetry;
152152
ConfigProvider configProvider = extendedOpenTelemetry.getConfigProvider();
153-
DeclarativeConfigProperties instrumentationConfig = configProvider.getInstrumentationConfig();
154-
if (instrumentationConfig == null) {
155-
return empty();
156-
}
157-
DeclarativeConfigProperties node = instrumentationConfig.getStructured("java", empty());
158-
// last part is the leaf property
159-
for (int i = 0; i < propertyName.length - 1; i++) {
160-
node = node.getStructured(propertyName[i], empty());
161-
}
162-
return node;
153+
return getConfigProperties(configProvider, propertyName);
163154
}
164155
return null;
165156
}
166157

158+
/** Returns the DeclarativeConfigProperties node for the given property name parts. */
159+
public static DeclarativeConfigProperties getConfigProperties(
160+
ConfigProvider configProvider, String[] propertyName) {
161+
DeclarativeConfigProperties instrumentationConfig = configProvider.getInstrumentationConfig();
162+
if (instrumentationConfig == null) {
163+
return empty();
164+
}
165+
DeclarativeConfigProperties node = instrumentationConfig.getStructured("java", empty());
166+
// last part is the leaf property
167+
for (int i = 0; i < propertyName.length - 1; i++) {
168+
node = node.getStructured(propertyName[i], empty());
169+
}
170+
return node;
171+
}
172+
167173
public static String toSystemProperty(String[] propertyName) {
168174
for (int i = 0; i < propertyName.length; i++) {
169175
if (propertyName[i].endsWith("/development")) {

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v2_2/AwsSdkSingletons.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
package io.opentelemetry.javaagent.instrumentation.awssdk.v2_2;
77

8+
import io.opentelemetry.api.incubator.config.ConfigProvider;
9+
import io.opentelemetry.instrumentation.api.incubator.config.internal.InstrumentationConfig;
810
import io.opentelemetry.instrumentation.api.internal.ConfigPropertiesUtil;
911
import io.opentelemetry.instrumentation.awssdk.v2_2.AwsSdkTelemetry;
1012
import io.opentelemetry.instrumentation.awssdk.v2_2.internal.AbstractAwsSdkTelemetryFactory;
@@ -34,8 +36,16 @@ protected boolean messagingReceiveInstrumentationEnabled() {
3436

3537
@Override
3638
protected boolean getBoolean(boolean defaultValue, String... name) {
37-
return AgentInstrumentationConfig.get()
38-
.getBoolean(ConfigPropertiesUtil.toSystemProperty(name), defaultValue);
39+
InstrumentationConfig instrumentationConfig = AgentInstrumentationConfig.get();
40+
ConfigProvider configProvider = instrumentationConfig.getConfigProvider();
41+
if (configProvider != null) {
42+
// don't use to InstrumentationConfig, which would use a bridge back to declarative config
43+
return ConfigPropertiesUtil.getConfigProperties(configProvider, name)
44+
.getBoolean(name[name.length - 1], defaultValue);
45+
}
46+
47+
return instrumentationConfig.getBoolean(
48+
ConfigPropertiesUtil.toSystemProperty(name), defaultValue);
3949
}
4050
}
4151

0 commit comments

Comments
 (0)