diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/DeprecatedConfigProperties.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/DeprecatedConfigProperties.java deleted file mode 100644 index 6eb2ce5bfe3f..000000000000 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/DeprecatedConfigProperties.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.spring.autoconfigure.internal; - -import static java.util.logging.Level.WARNING; - -import java.util.logging.Logger; -import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent; - -/** - * This class is internal and is hence not for public use. Its APIs are unstable and can change at - * any time. - */ -@SuppressWarnings("unused") // keep around for next time even if not currently used -public final class DeprecatedConfigProperties { - - private static final Logger logger = Logger.getLogger(DeprecatedConfigProperties.class.getName()); - - public static Boolean getBoolean( - ApplicationEnvironmentPreparedEvent event, - String deprecatedPropertyName, - String newPropertyName) { - warnIfUsed(event, deprecatedPropertyName, newPropertyName); - Boolean value = event.getEnvironment().getProperty(deprecatedPropertyName, Boolean.class); - if (value != null) { - return value; - } - return event.getEnvironment().getProperty(newPropertyName, Boolean.class); - } - - private static void warnIfUsed( - ApplicationEnvironmentPreparedEvent event, - String deprecatedPropertyName, - String newPropertyName) { - String value = event.getEnvironment().getProperty(deprecatedPropertyName, String.class); - if (value != null) { - logger.log( - WARNING, - "Deprecated property \"{0}\" was used; use the \"{1}\" property instead", - new Object[] {deprecatedPropertyName, newPropertyName}); - } - } - - private DeprecatedConfigProperties() {} -} diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/EarlyConfig.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/EarlyConfig.java index 19a64749a5b9..480320cb2546 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/EarlyConfig.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/EarlyConfig.java @@ -50,33 +50,14 @@ public static boolean isDefaultEnabled(Environment environment) { } } - public static String translatePropertyName(Environment environment, String name) { - if (isDeclarativeConfig(environment)) { - if (name.startsWith("otel.instrumentation.")) { - return toSnakeCase( - String.format( - "otel.instrumentation/development.java.%s", - name.substring("otel.instrumentation.".length()))); - } - - throw new IllegalStateException( - "No mapping found for property name: " + name + ". Please report this bug."); - } else { - return name; - } - } - - private static String toSnakeCase(String string) { - return string.replace('-', '_'); - } - public static boolean isInstrumentationEnabled( Environment environment, String name, boolean defaultValue) { String property = getPropertyName( environment, String.format("otel.instrumentation.%s.enabled", name), - String.format("otel.instrumentation/development.java.%s.enabled", toSnakeCase(name))); + String.format( + "otel.instrumentation/development.java.%s.enabled", name.replace('-', '_'))); Boolean explicit = environment.getProperty(property, Boolean.class); if (explicit != null) { return explicit; diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java index cf4eea4b60e4..83a91d25eca5 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/internal/instrumentation/logging/LogbackAppenderInstaller.java @@ -9,7 +9,6 @@ import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.Appender; import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender; -import io.opentelemetry.instrumentation.spring.autoconfigure.internal.DeprecatedConfigProperties; import io.opentelemetry.instrumentation.spring.autoconfigure.internal.EarlyConfig; import java.util.Iterator; import java.util.Optional; @@ -92,78 +91,76 @@ private static void initializeOpenTelemetryAppenderFromProperties( // org.springframework.boot.context.logging.LoggingApplicationListener, config properties not // available Boolean codeAttribute = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.experimental.capture-code-attributes"); if (codeAttribute != null) { - openTelemetryAppender.setCaptureCodeAttributes(codeAttribute.booleanValue()); + openTelemetryAppender.setCaptureCodeAttributes(codeAttribute); } Boolean markerAttribute = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.experimental.capture-marker-attribute"); if (markerAttribute != null) { - openTelemetryAppender.setCaptureMarkerAttribute(markerAttribute.booleanValue()); + openTelemetryAppender.setCaptureMarkerAttribute(markerAttribute); } Boolean keyValuePairAttributes = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.experimental.capture-key-value-pair-attributes"); if (keyValuePairAttributes != null) { - openTelemetryAppender.setCaptureKeyValuePairAttributes(keyValuePairAttributes.booleanValue()); + openTelemetryAppender.setCaptureKeyValuePairAttributes(keyValuePairAttributes); } Boolean logAttributes = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.experimental-log-attributes"); if (logAttributes != null) { - openTelemetryAppender.setCaptureExperimentalAttributes(logAttributes.booleanValue()); + openTelemetryAppender.setCaptureExperimentalAttributes(logAttributes); } Boolean loggerContextAttributes = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.experimental.capture-logger-context-attributes"); if (loggerContextAttributes != null) { - openTelemetryAppender.setCaptureLoggerContext(loggerContextAttributes.booleanValue()); + openTelemetryAppender.setCaptureLoggerContext(loggerContextAttributes); } Boolean captureTemplate = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.experimental.capture-template"); if (captureTemplate != null) { - openTelemetryAppender.setCaptureTemplate(captureTemplate.booleanValue()); + openTelemetryAppender.setCaptureTemplate(captureTemplate); } Boolean captureArguments = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.experimental.capture-arguments"); if (captureArguments != null) { - openTelemetryAppender.setCaptureArguments(captureArguments.booleanValue()); + openTelemetryAppender.setCaptureArguments(captureArguments); } Boolean captureLogstashMarkerAttributes = - DeprecatedConfigProperties.getBoolean( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, - "otel.instrumentation.logback-appender.experimental.capture-logstash-markers", "otel.instrumentation.logback-appender.experimental.capture-logstash-marker-attributes"); if (captureLogstashMarkerAttributes != null) { - openTelemetryAppender.setCaptureLogstashMarkerAttributes( - captureLogstashMarkerAttributes.booleanValue()); + openTelemetryAppender.setCaptureLogstashMarkerAttributes(captureLogstashMarkerAttributes); } Boolean captureLogstashStructuredArguments = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-appender.experimental.capture-logstash-structured-arguments"); if (captureLogstashStructuredArguments != null) { openTelemetryAppender.setCaptureLogstashStructuredArguments( - captureLogstashStructuredArguments.booleanValue()); + captureLogstashStructuredArguments); } String mdcAttributeProperty = @@ -206,7 +203,7 @@ private static void initializeMdcAppenderFromProperties( // org.springframework.boot.context.logging.LoggingApplicationListener, config properties not // available Boolean addBaggage = - evaluateBooleanProperty( + evaluateBooleanPropertyDeclarativeConfigOrLegacy( applicationEnvironmentPreparedEvent, "otel.instrumentation.logback-mdc.add-baggage"); if (addBaggage != null) { openTelemetryAppender.setAddBaggage(addBaggage); @@ -237,11 +234,23 @@ private static void initializeMdcAppenderFromProperties( } } - private static Boolean evaluateBooleanProperty( + private static Boolean evaluateBooleanPropertyDeclarativeConfigOrLegacy( ApplicationEnvironmentPreparedEvent applicationEnvironmentPreparedEvent, String property) { ConfigurableEnvironment environment = applicationEnvironmentPreparedEvent.getEnvironment(); - return environment.getProperty( - EarlyConfig.translatePropertyName(environment, property), Boolean.class); + String key = property; + if (EarlyConfig.isDeclarativeConfig(environment)) { + if (property.startsWith("otel.instrumentation.")) { + key = + String.format( + "otel.instrumentation/development.java.%s", + property.substring("otel.instrumentation.".length())) + .replace('-', '_'); + } else { + throw new IllegalStateException( + "No mapping found for property name: " + property + ". Please report this bug."); + } + } + return environment.getProperty(key, Boolean.class); } private static Optional findAppender(Class appenderClass) {