diff --git a/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesBackedDeclarativeConfigProperties.java b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesBackedDeclarativeConfigProperties.java index 9f88d2cc7d3f..7de624244db3 100644 --- a/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesBackedDeclarativeConfigProperties.java +++ b/declarative-config-bridge/src/main/java/io/opentelemetry/instrumentation/config/bridge/ConfigPropertiesBackedDeclarativeConfigProperties.java @@ -45,6 +45,12 @@ public final class ConfigPropertiesBackedDeclarativeConfigProperties SPECIAL_MAPPINGS.put( "general.http.server.response_captured_headers", "otel.instrumentation.http.server.capture-response-headers"); + SPECIAL_MAPPINGS.put( + "java.common.messaging.receive_telemetry/development.enabled", + "otel.instrumentation.messaging.experimental.receive-telemetry.enabled"); + SPECIAL_MAPPINGS.put( + "java.common.messaging.capture_headers/development", + "otel.instrumentation.messaging.experimental.capture-headers"); } private final ConfigProperties configProperties; diff --git a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/DeclarativeConfigUtil.java b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/DeclarativeConfigUtil.java index 5efed55bd1d9..680093f82150 100644 --- a/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/DeclarativeConfigUtil.java +++ b/instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/config/internal/DeclarativeConfigUtil.java @@ -19,16 +19,25 @@ public final class DeclarativeConfigUtil { private DeclarativeConfigUtil() {} - public static ExtendedDeclarativeConfigProperties get(OpenTelemetry openTelemetry) { - DeclarativeConfigProperties javaConfig = empty(); + public static ExtendedDeclarativeConfigProperties getInstrumentationConfig( + OpenTelemetry openTelemetry, String instrumentationName) { + return getConfig(openTelemetry).get("java").get(instrumentationName); + } + + public static ExtendedDeclarativeConfigProperties getGeneralInstrumentationConfig( + OpenTelemetry openTelemetry) { + return getConfig(openTelemetry).get("general"); + } + + private static ExtendedDeclarativeConfigProperties getConfig(OpenTelemetry openTelemetry) { if (openTelemetry instanceof ExtendedOpenTelemetry) { ExtendedOpenTelemetry extendedOpenTelemetry = (ExtendedOpenTelemetry) openTelemetry; DeclarativeConfigProperties instrumentationConfig = extendedOpenTelemetry.getConfigProvider().getInstrumentationConfig(); if (instrumentationConfig != null) { - javaConfig = instrumentationConfig.getStructured("java", empty()); + return new ExtendedDeclarativeConfigProperties(instrumentationConfig); } } - return new ExtendedDeclarativeConfigProperties(javaConfig); + return new ExtendedDeclarativeConfigProperties(empty()); } } diff --git a/instrumentation/graphql-java/graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0/GraphqlSingletons.java b/instrumentation/graphql-java/graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0/GraphqlSingletons.java index 0b602d2937c8..ca9462c2a26c 100644 --- a/instrumentation/graphql-java/graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0/GraphqlSingletons.java +++ b/instrumentation/graphql-java/graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0/GraphqlSingletons.java @@ -49,13 +49,13 @@ private static final class Configuration { private final boolean addOperationNameToSpanName; Configuration(OpenTelemetry openTelemetry) { - ExtendedDeclarativeConfigProperties config = DeclarativeConfigUtil.get(openTelemetry); + ExtendedDeclarativeConfigProperties config = + DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "graphql"); - this.captureQuery = config.get("graphql").getBoolean("capture_query", true); - this.querySanitizerEnabled = - config.get("graphql").get("query_sanitizer").getBoolean("enabled", true); + this.captureQuery = config.getBoolean("capture_query", true); + this.querySanitizerEnabled = config.get("query_sanitizer").getBoolean("enabled", true); this.addOperationNameToSpanName = - config.get("graphql").get("add_operation_name_to_span_name").getBoolean("enabled", false); + config.get("add_operation_name_to_span_name").getBoolean("enabled", false); } } diff --git a/instrumentation/graphql-java/graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0/GraphqlSingletons.java b/instrumentation/graphql-java/graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0/GraphqlSingletons.java index 8968efd9f114..7715b405c672 100644 --- a/instrumentation/graphql-java/graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0/GraphqlSingletons.java +++ b/instrumentation/graphql-java/graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0/GraphqlSingletons.java @@ -57,16 +57,16 @@ private static final class Configuration { private final boolean addOperationNameToSpanName; Configuration(OpenTelemetry openTelemetry) { - ExtendedDeclarativeConfigProperties config = DeclarativeConfigUtil.get(openTelemetry); + ExtendedDeclarativeConfigProperties config = + DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "graphql"); - this.captureQuery = config.get("graphql").getBoolean("capture_query", true); - this.sanitizeQuery = config.get("graphql").get("query_sanitizer").getBoolean("enabled", true); - this.dataFetcherEnabled = - config.get("graphql").get("data_fetcher").getBoolean("enabled", false); + this.captureQuery = config.getBoolean("capture_query", true); + this.sanitizeQuery = config.get("query_sanitizer").getBoolean("enabled", true); + this.dataFetcherEnabled = config.get("data_fetcher").getBoolean("enabled", false); this.trivialDataFetcherEnabled = - config.get("graphql").get("trivial_data_fetcher").getBoolean("enabled", false); + config.get("trivial_data_fetcher").getBoolean("enabled", false); this.addOperationNameToSpanName = - config.get("graphql").get("add_operation_name_to_span_name").getBoolean("enabled", false); + config.get("add_operation_name_to_span_name").getBoolean("enabled", false); } } diff --git a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/ExperimentalConfig.java b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/ExperimentalConfig.java index 1f11736e0ecd..0f11dcb07ee0 100644 --- a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/ExperimentalConfig.java +++ b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/ExperimentalConfig.java @@ -22,7 +22,7 @@ public final class ExperimentalConfig { private static final ExperimentalConfig instance = new ExperimentalConfig(GlobalOpenTelemetry.get()); - private final ExtendedDeclarativeConfigProperties config; + private final ExtendedDeclarativeConfigProperties commonConfig; private final List messagingHeaders; /** Returns the global agent configuration. */ @@ -31,35 +31,28 @@ public static ExperimentalConfig get() { } public ExperimentalConfig(OpenTelemetry openTelemetry) { - this.config = DeclarativeConfigUtil.get(openTelemetry); + this.commonConfig = DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "common"); this.messagingHeaders = - config + commonConfig .get("messaging") .getScalarList("capture_headers/development", String.class, emptyList()); } public boolean controllerTelemetryEnabled() { - return config - .get("common") - .get("controller_telemetry/development") - .getBoolean("enabled", false); + return commonConfig.get("controller_telemetry/development").getBoolean("enabled", false); } public boolean viewTelemetryEnabled() { - return config.get("common").get("view_telemetry/development").getBoolean("enabled", false); + return commonConfig.get("view_telemetry/development").getBoolean("enabled", false); } public boolean messagingReceiveInstrumentationEnabled() { - return config + return commonConfig .get("messaging") .get("receive_telemetry/development") .getBoolean("enabled", false); } - public boolean indyEnabled() { - return config.get("agent").getBoolean("indy/development", false); - } - public List getMessagingHeaders() { return messagingHeaders; } diff --git a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/instrumentation/InstrumentationModule.java b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/instrumentation/InstrumentationModule.java index e6ee634fe5d9..74dcde22638e 100644 --- a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/instrumentation/InstrumentationModule.java +++ b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/instrumentation/InstrumentationModule.java @@ -9,7 +9,7 @@ import static java.util.Collections.unmodifiableSet; import static net.bytebuddy.matcher.ElementMatchers.any; -import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; +import io.opentelemetry.javaagent.bootstrap.internal.AgentInstrumentationConfig; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.Ordered; import java.util.Collections; @@ -161,7 +161,8 @@ private static class IndyConfigurationHolder { private static final boolean indyEnabled; static { - indyEnabled = ExperimentalConfig.get().indyEnabled(); + indyEnabled = + AgentInstrumentationConfig.get().getBoolean("otel.javaagent.experimental.indy", false); if (indyEnabled) { logger.info("Enabled indy for instrumentation modules"); }