From 8c88c302d4a0c737c4f7f1f6b7b553f1c6994e1a Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 7 Jan 2026 18:35:16 +0100 Subject: [PATCH 1/2] align config usage --- .../instrumentation/grpc/v1_6/GrpcSingletons.java | 14 +++++++------- .../java8/internal/RuntimeMetricsConfigUtil.java | 12 ++++++------ .../KafkaInstrumentationAutoConfiguration.java | 7 +++++-- .../v6_0/EnduserAttributesCapturerSingletons.java | 14 +++++--------- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/instrumentation/grpc-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grpc/v1_6/GrpcSingletons.java b/instrumentation/grpc-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grpc/v1_6/GrpcSingletons.java index 534b2beba10a..3b44b9cd0522 100644 --- a/instrumentation/grpc-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grpc/v1_6/GrpcSingletons.java +++ b/instrumentation/grpc-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grpc/v1_6/GrpcSingletons.java @@ -14,6 +14,7 @@ import io.grpc.ServerInterceptor; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil; +import io.opentelemetry.instrumentation.api.incubator.config.internal.ExtendedDeclarativeConfigProperties; import io.opentelemetry.instrumentation.api.util.VirtualField; import io.opentelemetry.instrumentation.grpc.v1_6.GrpcTelemetry; import io.opentelemetry.instrumentation.grpc.v1_6.internal.ContextStorageBridge; @@ -37,21 +38,20 @@ public final class GrpcSingletons { private static final AtomicReference STORAGE_REFERENCE = new AtomicReference<>(); static { - boolean emitMessageEvents = - DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "grpc") - .getBoolean("emit_message_events", true); + ExtendedDeclarativeConfigProperties config = + DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "grpc"); + boolean emitMessageEvents = config.getBoolean("emit_message_events", true); boolean experimentalSpanAttributes = - DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "grpc") - .getBoolean("experimental_span_attributes/development", false); + config.getBoolean("experimental_span_attributes/development", false); List clientRequestMetadata = - DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "grpc") + config .get("capture_metadata") .get("client") .getScalarList("request", String.class, emptyList()); List serverRequestMetadata = - DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "grpc") + config .get("capture_metadata") .get("server") .getScalarList("request", String.class, emptyList()); diff --git a/instrumentation/runtime-telemetry/runtime-telemetry-java8/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java8/internal/RuntimeMetricsConfigUtil.java b/instrumentation/runtime-telemetry/runtime-telemetry-java8/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java8/internal/RuntimeMetricsConfigUtil.java index 0e611e80a6f9..d6c913d3018c 100644 --- a/instrumentation/runtime-telemetry/runtime-telemetry-java8/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java8/internal/RuntimeMetricsConfigUtil.java +++ b/instrumentation/runtime-telemetry/runtime-telemetry-java8/library/src/main/java/io/opentelemetry/instrumentation/runtimemetrics/java8/internal/RuntimeMetricsConfigUtil.java @@ -7,6 +7,7 @@ import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil; +import io.opentelemetry.instrumentation.api.incubator.config.internal.ExtendedDeclarativeConfigProperties; import io.opentelemetry.instrumentation.runtimemetrics.java8.RuntimeMetrics; import io.opentelemetry.instrumentation.runtimemetrics.java8.RuntimeMetricsBuilder; import javax.annotation.Nullable; @@ -21,19 +22,18 @@ private RuntimeMetricsConfigUtil() {} @Nullable public static RuntimeMetrics configure( RuntimeMetricsBuilder builder, OpenTelemetry openTelemetry, String instrumentationMode) { - if (!DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "runtime_telemetry") - .getBoolean("enabled", instrumentationMode.equals("default"))) { + ExtendedDeclarativeConfigProperties config = + DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "runtime_telemetry"); + if (!config.getBoolean("enabled", instrumentationMode.equals("default"))) { // nothing is enabled return null; } - if (DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "runtime_telemetry") - .getBoolean("emit_experimental_telemetry/development", false)) { + if (config.getBoolean("emit_experimental_telemetry/development", false)) { builder.emitExperimentalTelemetry(); } - if (DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "runtime_telemetry") - .getBoolean("capture_gc_cause", false)) { + if (config.getBoolean("capture_gc_cause", false)) { builder.captureGcCause(); } diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/kafka/KafkaInstrumentationAutoConfiguration.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/kafka/KafkaInstrumentationAutoConfiguration.java index 2d6ed064dd2a..4cb9962718c9 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/kafka/KafkaInstrumentationAutoConfiguration.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/kafka/KafkaInstrumentationAutoConfiguration.java @@ -9,6 +9,7 @@ import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil; +import io.opentelemetry.instrumentation.api.incubator.config.internal.ExtendedDeclarativeConfigProperties; import io.opentelemetry.instrumentation.spring.autoconfigure.internal.ConditionalOnEnabledInstrumentation; import io.opentelemetry.instrumentation.spring.kafka.v2_7.SpringKafkaTelemetry; import org.springframework.beans.factory.ObjectProvider; @@ -36,17 +37,19 @@ public KafkaInstrumentationAutoConfiguration() {} @Bean static SpringKafkaTelemetry getTelemetry(ObjectProvider openTelemetryProvider) { OpenTelemetry openTelemetry = openTelemetryProvider.getObject(); + ExtendedDeclarativeConfigProperties commonConfig = + DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "common"); return SpringKafkaTelemetry.builder(openTelemetry) .setCaptureExperimentalSpanAttributes( DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "kafka") .getBoolean("experimental_span_attributes/development", false)) .setMessagingReceiveTelemetryEnabled( - DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "common") + commonConfig .get("messaging") .get("receive_telemetry/development") .getBoolean("enabled", false)) .setCapturedHeaders( - DeclarativeConfigUtil.getInstrumentationConfig(openTelemetry, "common") + commonConfig .get("messaging") .getScalarList("capture_headers/development", String.class, emptyList())) .build(); diff --git a/instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/EnduserAttributesCapturerSingletons.java b/instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/EnduserAttributesCapturerSingletons.java index 0e39cea3e698..3b7ef4f8dce0 100644 --- a/instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/EnduserAttributesCapturerSingletons.java +++ b/instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/EnduserAttributesCapturerSingletons.java @@ -7,6 +7,7 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil; +import io.opentelemetry.instrumentation.api.incubator.config.internal.ExtendedDeclarativeConfigProperties; import io.opentelemetry.instrumentation.spring.security.config.v6_0.EnduserAttributesCapturer; import io.opentelemetry.javaagent.bootstrap.internal.AgentCommonConfig; @@ -27,20 +28,15 @@ private static EnduserAttributesCapturer createEndUserAttributesCapturerFromConf capturer.setEnduserRoleEnabled(AgentCommonConfig.get().getEnduserConfig().isRoleEnabled()); capturer.setEnduserScopeEnabled(AgentCommonConfig.get().getEnduserConfig().isScopeEnabled()); - String rolePrefix = + ExtendedDeclarativeConfigProperties config = DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "spring_security") - .get("enduser") - .get("role") - .getString("granted_authority_prefix"); + .get("enduser"); + String rolePrefix = config.get("role").getString("granted_authority_prefix"); if (rolePrefix != null) { capturer.setRoleGrantedAuthorityPrefix(rolePrefix); } - String scopePrefix = - DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "spring_security") - .get("enduser") - .get("scope") - .getString("granted_authority_prefix"); + String scopePrefix = config.get("scope").getString("granted_authority_prefix"); if (scopePrefix != null) { capturer.setScopeGrantedAuthorityPrefix(scopePrefix); } From c211ff7d9e4d7cf87049294653959b5773903f65 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 9 Jan 2026 08:18:16 +0100 Subject: [PATCH 2/2] pr review --- .../config/v6_0/EnduserAttributesCapturerSingletons.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/EnduserAttributesCapturerSingletons.java b/instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/EnduserAttributesCapturerSingletons.java index 3b7ef4f8dce0..437cb6033f48 100644 --- a/instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/EnduserAttributesCapturerSingletons.java +++ b/instrumentation/spring/spring-security-config-6.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/security/config/v6_0/EnduserAttributesCapturerSingletons.java @@ -28,15 +28,15 @@ private static EnduserAttributesCapturer createEndUserAttributesCapturerFromConf capturer.setEnduserRoleEnabled(AgentCommonConfig.get().getEnduserConfig().isRoleEnabled()); capturer.setEnduserScopeEnabled(AgentCommonConfig.get().getEnduserConfig().isScopeEnabled()); - ExtendedDeclarativeConfigProperties config = + ExtendedDeclarativeConfigProperties endUserConfig = DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "spring_security") .get("enduser"); - String rolePrefix = config.get("role").getString("granted_authority_prefix"); + String rolePrefix = endUserConfig.get("role").getString("granted_authority_prefix"); if (rolePrefix != null) { capturer.setRoleGrantedAuthorityPrefix(rolePrefix); } - String scopePrefix = config.get("scope").getString("granted_authority_prefix"); + String scopePrefix = endUserConfig.get("scope").getString("granted_authority_prefix"); if (scopePrefix != null) { capturer.setScopeGrantedAuthorityPrefix(scopePrefix); }