diff --git a/CHANGELOG.md b/CHANGELOG.md index 31764c37ae62..38e8c8081612 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ ## Unreleased +- Remove deprecated config properties in favor of the new names (#10349): + - `otel.instrumentation.kafka.client-propagation.enabled` -> + `otel.instrumentation.kafka.producer-propagation.enabled` + - `otel.instrumentation.netty.always-create-connect-span` -> + `otel.instrumentation.netty.connection-telemetry.enabled` + - `otel.instrumentation.http.capture-headers.client.request` -> + `otel.instrumentation.http.client.capture-request-headers` + - `otel.instrumentation.http.capture-headers.client.response` -> + `otel.instrumentation.http.client.capture-response-headers` + - `otel.instrumentation.http.capture-headers.server.request` -> + `otel.instrumentation.http.server.capture-request-headers` + - `otel.instrumentation.http.capture-headers.server.response` -> + `otel.instrumentation.http.server.capture-response-headers` + - `otel.instrumentation.http.client.emit-experimental-metrics` -> + `otel.instrumentation.http.client.emit-experimental-telemetry` + - `otel.instrumentation.http.server.emit-experimental-metrics` -> + `otel.instrumentation.http.server.emit-experimental-telemetry` + ## Version 2.0.0 (2024-01-12) The 2.0.0 release contains significant breaking changes that will most likely affect all users, diff --git a/instrumentation/kafka/README.md b/instrumentation/kafka/README.md index 618982fe19b7..858a8bd8c671 100644 --- a/instrumentation/kafka/README.md +++ b/instrumentation/kafka/README.md @@ -3,5 +3,5 @@ | System property | Type | Default | Description | |-----------------------------------------------------------| ------- |---------|--------------------------------------------------------------------------------------------------------------------------------| | `otel.instrumentation.kafka.experimental-span-attributes` | Boolean | `false` | Enable the capture of experimental span attributes. | -| `otel.instrumentation.kafka.client-propagation.enabled` | Boolean | `true` | Enable context propagation for kafka message producer. | +| `otel.instrumentation.kafka.producer-propagation.enabled` | Boolean | `true` | Enable context propagation for kafka message producer. | | `otel.instrumentation.kafka.metric-reporter.enabled` | Boolean | `true` | Enable kafka consumer and producer metrics. **Deprecated**, disable instrumentation with name `kafka-clients-metrics` instead. | diff --git a/instrumentation/kafka/kafka-clients/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/v0_11/KafkaSingletons.java b/instrumentation/kafka/kafka-clients/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/v0_11/KafkaSingletons.java index 1d3a4f036845..736b28ab1eae 100644 --- a/instrumentation/kafka/kafka-clients/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/v0_11/KafkaSingletons.java +++ b/instrumentation/kafka/kafka-clients/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/v0_11/KafkaSingletons.java @@ -11,7 +11,6 @@ import io.opentelemetry.instrumentation.kafka.internal.KafkaProcessRequest; import io.opentelemetry.instrumentation.kafka.internal.KafkaProducerRequest; import io.opentelemetry.instrumentation.kafka.internal.KafkaReceiveRequest; -import io.opentelemetry.javaagent.bootstrap.internal.DeprecatedConfigProperties; import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import org.apache.kafka.clients.producer.RecordMetadata; @@ -20,11 +19,8 @@ public final class KafkaSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.kafka-clients-0.11"; private static final boolean PRODUCER_PROPAGATION_ENABLED = - DeprecatedConfigProperties.getBoolean( - InstrumentationConfig.get(), - "otel.instrumentation.kafka.client-propagation.enabled", - "otel.instrumentation.kafka.producer-propagation.enabled", - true); + InstrumentationConfig.get() + .getBoolean("otel.instrumentation.kafka.producer-propagation.enabled", true); private static final Instrumenter PRODUCER_INSTRUMENTER; private static final Instrumenter CONSUMER_RECEIVE_INSTRUMENTER; diff --git a/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/client/NettyClientSingletons.java b/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/client/NettyClientSingletons.java index 091eb61028c9..30dea16b42e1 100644 --- a/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/client/NettyClientSingletons.java +++ b/instrumentation/netty/netty-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_0/client/NettyClientSingletons.java @@ -15,26 +15,17 @@ import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettyConnectionInstrumenter; import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettySslInstrumenter; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; -import io.opentelemetry.javaagent.bootstrap.internal.DeprecatedConfigProperties; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import java.util.Collections; public final class NettyClientSingletons { - private static final boolean connectionTelemetryEnabled; - private static final boolean sslTelemetryEnabled; - - static { - InstrumentationConfig config = InstrumentationConfig.get(); - connectionTelemetryEnabled = - DeprecatedConfigProperties.getBoolean( - config, - "otel.instrumentation.netty.always-create-connect-span", - "otel.instrumentation.netty.connection-telemetry.enabled", - false); - sslTelemetryEnabled = - config.getBoolean("otel.instrumentation.netty.ssl-telemetry.enabled", false); - } + private static final boolean connectionTelemetryEnabled = + InstrumentationConfig.get() + .getBoolean("otel.instrumentation.netty.connection-telemetry.enabled", false); + private static final boolean sslTelemetryEnabled = + InstrumentationConfig.get() + .getBoolean("otel.instrumentation.netty.ssl-telemetry.enabled", false); private static final Instrumenter INSTRUMENTER; private static final NettyConnectionInstrumenter CONNECTION_INSTRUMENTER; diff --git a/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/NettyClientSingletons.java b/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/NettyClientSingletons.java index 409cfaebc4a1..aba4e275aa35 100644 --- a/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/NettyClientSingletons.java +++ b/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/NettyClientSingletons.java @@ -15,26 +15,17 @@ import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettyConnectionInstrumenter; import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettySslInstrumenter; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; -import io.opentelemetry.javaagent.bootstrap.internal.DeprecatedConfigProperties; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import java.util.Collections; public final class NettyClientSingletons { - private static final boolean connectionTelemetryEnabled; - private static final boolean sslTelemetryEnabled; - - static { - InstrumentationConfig config = InstrumentationConfig.get(); - connectionTelemetryEnabled = - DeprecatedConfigProperties.getBoolean( - config, - "otel.instrumentation.netty.always-create-connect-span", - "otel.instrumentation.netty.connection-telemetry.enabled", - false); - sslTelemetryEnabled = - config.getBoolean("otel.instrumentation.netty.ssl-telemetry.enabled", false); - } + private static final boolean connectionTelemetryEnabled = + InstrumentationConfig.get() + .getBoolean("otel.instrumentation.netty.connection-telemetry.enabled", false); + private static final boolean sslTelemetryEnabled = + InstrumentationConfig.get() + .getBoolean("otel.instrumentation.netty.ssl-telemetry.enabled", false); private static final Instrumenter INSTRUMENTER; private static final NettyConnectionInstrumenter CONNECTION_INSTRUMENTER; diff --git a/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/ReactorNettySingletons.java b/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/ReactorNettySingletons.java index 268b6002141b..5087235c26dd 100644 --- a/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/ReactorNettySingletons.java +++ b/instrumentation/reactor/reactor-netty/reactor-netty-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/reactornetty/v1_0/ReactorNettySingletons.java @@ -19,7 +19,6 @@ import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettyConnectionInstrumentationFlag; import io.opentelemetry.instrumentation.netty.v4.common.internal.client.NettyConnectionInstrumenter; import io.opentelemetry.javaagent.bootstrap.internal.CommonConfig; -import io.opentelemetry.javaagent.bootstrap.internal.DeprecatedConfigProperties; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import reactor.netty.http.client.HttpClientRequest; import reactor.netty.http.client.HttpClientResponse; @@ -28,17 +27,9 @@ public final class ReactorNettySingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.reactor-netty-1.0"; - private static final boolean connectionTelemetryEnabled; - - static { - InstrumentationConfig config = InstrumentationConfig.get(); - connectionTelemetryEnabled = - DeprecatedConfigProperties.getBoolean( - config, - "otel.instrumentation.reactor-netty.always-create-connect-span", - "otel.instrumentation.reactor-netty.connection-telemetry.enabled", - false); - } + private static final boolean connectionTelemetryEnabled = + InstrumentationConfig.get() + .getBoolean("otel.instrumentation.reactor-netty.connection-telemetry.enabled", false); private static final Instrumenter INSTRUMENTER; private static final NettyConnectionInstrumenter CONNECTION_INSTRUMENTER; diff --git a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/CommonConfig.java b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/CommonConfig.java index 36e2f64d1b5f..000a39608609 100644 --- a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/CommonConfig.java +++ b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/CommonConfig.java @@ -42,27 +42,14 @@ public static CommonConfig get() { PeerServiceResolver.create( config.getMap("otel.instrumentation.common.peer-service-mapping", emptyMap())); - // TODO (mateusz): remove the old config names in 2.0 clientRequestHeaders = - DeprecatedConfigProperties.getList( - config, - "otel.instrumentation.http.capture-headers.client.request", - "otel.instrumentation.http.client.capture-request-headers"); + config.getList("otel.instrumentation.http.client.capture-request-headers"); clientResponseHeaders = - DeprecatedConfigProperties.getList( - config, - "otel.instrumentation.http.capture-headers.client.response", - "otel.instrumentation.http.client.capture-response-headers"); + config.getList("otel.instrumentation.http.client.capture-response-headers"); serverRequestHeaders = - DeprecatedConfigProperties.getList( - config, - "otel.instrumentation.http.capture-headers.server.request", - "otel.instrumentation.http.server.capture-request-headers"); + config.getList("otel.instrumentation.http.server.capture-request-headers"); serverResponseHeaders = - DeprecatedConfigProperties.getList( - config, - "otel.instrumentation.http.capture-headers.server.response", - "otel.instrumentation.http.server.capture-response-headers"); + config.getList("otel.instrumentation.http.server.capture-response-headers"); knownHttpRequestMethods = new HashSet<>( config.getList( @@ -71,17 +58,9 @@ public static CommonConfig get() { statementSanitizationEnabled = config.getBoolean("otel.instrumentation.common.db-statement-sanitizer.enabled", true); emitExperimentalHttpClientTelemetry = - DeprecatedConfigProperties.getBoolean( - config, - "otel.instrumentation.http.client.emit-experimental-metrics", - "otel.instrumentation.http.client.emit-experimental-telemetry", - false); + config.getBoolean("otel.instrumentation.http.client.emit-experimental-telemetry", false); emitExperimentalHttpServerTelemetry = - DeprecatedConfigProperties.getBoolean( - config, - "otel.instrumentation.http.server.emit-experimental-metrics", - "otel.instrumentation.http.server.emit-experimental-telemetry", - false); + config.getBoolean("otel.instrumentation.http.server.emit-experimental-telemetry", false); enduserConfig = new EnduserConfig(config); } diff --git a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/DeprecatedConfigProperties.java b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/DeprecatedConfigProperties.java index f32a5d796273..002bf787c99c 100644 --- a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/DeprecatedConfigProperties.java +++ b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/DeprecatedConfigProperties.java @@ -15,6 +15,7 @@ * This class is internal and is hence not for public use. Its APIs are unstable and can change at * any time. */ +@SuppressWarnings("unused") public final class DeprecatedConfigProperties { private static final Logger logger = Logger.getLogger(DeprecatedConfigProperties.class.getName()); diff --git a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/InstrumentationConfig.java b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/InstrumentationConfig.java index f0601f423662..fc4b7aabc6c2 100644 --- a/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/InstrumentationConfig.java +++ b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/InstrumentationConfig.java @@ -5,6 +5,7 @@ package io.opentelemetry.javaagent.bootstrap.internal; +import static java.util.Collections.emptyList; import static java.util.Objects.requireNonNull; import java.time.Duration; @@ -114,6 +115,14 @@ public static InstrumentationConfig get() { */ public abstract Duration getDuration(String name, Duration defaultValue); + /** + * This is the same as calling {@code getList(String, List)} with the defaultValue equal to the + * emptyList()/ + */ + public List getList(String name) { + return getList(name, emptyList()); + } + /** * Returns a list-valued configuration property or {@code defaultValue} if a property with name * {@code name} has not been configured. The format of the original value must be comma-separated,