Skip to content

Commit 9eb865a

Browse files
authored
Update DeclarativeConfigUtil to support general node (#15704)
1 parent d64350b commit 9eb865a

File tree

6 files changed

+40
-31
lines changed

6 files changed

+40
-31
lines changed

declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesBackedDeclarativeConfigProperties.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ public final class ConfigPropertiesBackedDeclarativeConfigProperties
4545
SPECIAL_MAPPINGS.put(
4646
"general.http.server.response_captured_headers",
4747
"otel.instrumentation.http.server.capture-response-headers");
48+
SPECIAL_MAPPINGS.put(
49+
"java.common.messaging.receive_telemetry/development.enabled",
50+
"otel.instrumentation.messaging.experimental.receive-telemetry.enabled");
51+
SPECIAL_MAPPINGS.put(
52+
"java.common.messaging.capture_headers/development",
53+
"otel.instrumentation.messaging.experimental.capture-headers");
4854
}
4955

5056
private final ConfigProperties configProperties;

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/DeclarativeConfigUtil.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,25 @@ public final class DeclarativeConfigUtil {
1919

2020
private DeclarativeConfigUtil() {}
2121

22-
public static ExtendedDeclarativeConfigProperties get(OpenTelemetry openTelemetry) {
23-
DeclarativeConfigProperties javaConfig = empty();
22+
public static ExtendedDeclarativeConfigProperties getInstrumentationConfig(
23+
OpenTelemetry openTelemetry, String instrumentationName) {
24+
return getConfig(openTelemetry).get("java").get(instrumentationName);
25+
}
26+
27+
public static ExtendedDeclarativeConfigProperties getGeneralInstrumentationConfig(
28+
OpenTelemetry openTelemetry) {
29+
return getConfig(openTelemetry).get("general");
30+
}
31+
32+
private static ExtendedDeclarativeConfigProperties getConfig(OpenTelemetry openTelemetry) {
2433
if (openTelemetry instanceof ExtendedOpenTelemetry) {
2534
ExtendedOpenTelemetry extendedOpenTelemetry = (ExtendedOpenTelemetry) openTelemetry;
2635
DeclarativeConfigProperties instrumentationConfig =
2736
extendedOpenTelemetry.getConfigProvider().getInstrumentationConfig();
2837
if (instrumentationConfig != null) {
29-
javaConfig = instrumentationConfig.getStructured("java", empty());
38+
return new ExtendedDeclarativeConfigProperties(instrumentationConfig);
3039
}
3140
}
32-
return new ExtendedDeclarativeConfigProperties(javaConfig);
41+
return new ExtendedDeclarativeConfigProperties(empty());
3342
}
3443
}

instrumentation/graphql-java/graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0/GraphqlSingletons.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ private static final class Configuration {
4949
private final boolean addOperationNameToSpanName;
5050

5151
Configuration(OpenTelemetry openTelemetry) {
52-
ExtendedDeclarativeConfigProperties config = DeclarativeConfigUtil.get(openTelemetry);
52+
ExtendedDeclarativeConfigProperties config =
53+
DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "graphql");
5354

54-
this.captureQuery = config.get("graphql").getBoolean("capture_query", true);
55-
this.querySanitizerEnabled =
56-
config.get("graphql").get("query_sanitizer").getBoolean("enabled", true);
55+
this.captureQuery = config.getBoolean("capture_query", true);
56+
this.querySanitizerEnabled = config.get("query_sanitizer").getBoolean("enabled", true);
5757
this.addOperationNameToSpanName =
58-
config.get("graphql").get("add_operation_name_to_span_name").getBoolean("enabled", false);
58+
config.get("add_operation_name_to_span_name").getBoolean("enabled", false);
5959
}
6060
}
6161

instrumentation/graphql-java/graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0/GraphqlSingletons.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,16 @@ private static final class Configuration {
5757
private final boolean addOperationNameToSpanName;
5858

5959
Configuration(OpenTelemetry openTelemetry) {
60-
ExtendedDeclarativeConfigProperties config = DeclarativeConfigUtil.get(openTelemetry);
60+
ExtendedDeclarativeConfigProperties config =
61+
DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "graphql");
6162

62-
this.captureQuery = config.get("graphql").getBoolean("capture_query", true);
63-
this.sanitizeQuery = config.get("graphql").get("query_sanitizer").getBoolean("enabled", true);
64-
this.dataFetcherEnabled =
65-
config.get("graphql").get("data_fetcher").getBoolean("enabled", false);
63+
this.captureQuery = config.getBoolean("capture_query", true);
64+
this.sanitizeQuery = config.get("query_sanitizer").getBoolean("enabled", true);
65+
this.dataFetcherEnabled = config.get("data_fetcher").getBoolean("enabled", false);
6666
this.trivialDataFetcherEnabled =
67-
config.get("graphql").get("trivial_data_fetcher").getBoolean("enabled", false);
67+
config.get("trivial_data_fetcher").getBoolean("enabled", false);
6868
this.addOperationNameToSpanName =
69-
config.get("graphql").get("add_operation_name_to_span_name").getBoolean("enabled", false);
69+
config.get("add_operation_name_to_span_name").getBoolean("enabled", false);
7070
}
7171
}
7272

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/ExperimentalConfig.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public final class ExperimentalConfig {
2222
private static final ExperimentalConfig instance =
2323
new ExperimentalConfig(GlobalOpenTelemetry.get());
2424

25-
private final ExtendedDeclarativeConfigProperties config;
25+
private final ExtendedDeclarativeConfigProperties commonConfig;
2626
private final List<String> messagingHeaders;
2727

2828
/** Returns the global agent configuration. */
@@ -31,35 +31,28 @@ public static ExperimentalConfig get() {
3131
}
3232

3333
public ExperimentalConfig(OpenTelemetry openTelemetry) {
34-
this.config = DeclarativeConfigUtil.get(openTelemetry);
34+
this.commonConfig = DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "common");
3535
this.messagingHeaders =
36-
config
36+
commonConfig
3737
.get("messaging")
3838
.getScalarList("capture_headers/development", String.class, emptyList());
3939
}
4040

4141
public boolean controllerTelemetryEnabled() {
42-
return config
43-
.get("common")
44-
.get("controller_telemetry/development")
45-
.getBoolean("enabled", false);
42+
return commonConfig.get("controller_telemetry/development").getBoolean("enabled", false);
4643
}
4744

4845
public boolean viewTelemetryEnabled() {
49-
return config.get("common").get("view_telemetry/development").getBoolean("enabled", false);
46+
return commonConfig.get("view_telemetry/development").getBoolean("enabled", false);
5047
}
5148

5249
public boolean messagingReceiveInstrumentationEnabled() {
53-
return config
50+
return commonConfig
5451
.get("messaging")
5552
.get("receive_telemetry/development")
5653
.getBoolean("enabled", false);
5754
}
5855

59-
public boolean indyEnabled() {
60-
return config.get("agent").getBoolean("indy/development", false);
61-
}
62-
6356
public List<String> getMessagingHeaders() {
6457
return messagingHeaders;
6558
}

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/instrumentation/InstrumentationModule.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import static java.util.Collections.unmodifiableSet;
1010
import static net.bytebuddy.matcher.ElementMatchers.any;
1111

12-
import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig;
12+
import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig;
1313
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1414
import io.opentelemetry.sdk.autoconfigure.spi.Ordered;
1515
import java.util.Collections;
@@ -161,7 +161,8 @@ private static class IndyConfigurationHolder {
161161
private static final boolean indyEnabled;
162162

163163
static {
164-
indyEnabled = ExperimentalConfig.get().indyEnabled();
164+
indyEnabled =
165+
AgentInstrumentationConfig.get().getBoolean("otel.javaagent.experimental.indy", false);
165166
if (indyEnabled) {
166167
logger.info("Enabled indy for instrumentation modules");
167168
}

0 commit comments

Comments
 (0)