diff --git a/instrumentation/dropwizard/dropwizard-views-0.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/dropwizardviews/DropwizardSingletons.java b/instrumentation/dropwizard/dropwizard-views-0.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/dropwizardviews/DropwizardSingletons.java index 9d00a3a946..c6c4cb954f 100644 --- a/instrumentation/dropwizard/dropwizard-views-0.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/dropwizardviews/DropwizardSingletons.java +++ b/instrumentation/dropwizard/dropwizard-views-0.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/dropwizardviews/DropwizardSingletons.java @@ -7,8 +7,8 @@ package io.opentelemetry.javaagent.instrumentation.dropwizardviews; import io.dropwizard.views.View; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public final class DropwizardSingletons { diff --git a/instrumentation/elasticsearch/elasticsearch-transport-5.0/javaagent/build.gradle.kts b/instrumentation/elasticsearch/elasticsearch-transport-5.0/javaagent/build.gradle.kts index 2ed571dfea..ea8af237a0 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-5.0/javaagent/build.gradle.kts +++ b/instrumentation/elasticsearch/elasticsearch-transport-5.0/javaagent/build.gradle.kts @@ -26,7 +26,7 @@ muzzle { dependencies { compileOnly("org.elasticsearch.client:transport:5.0.0") - implementation(project(":instrumentation:elasticsearch:elasticsearch-transport-common:library")) + implementation(project(":instrumentation:elasticsearch:elasticsearch-transport-common:javaagent")) // Ensure no cross interference testInstrumentation(project(":instrumentation:elasticsearch:elasticsearch-rest-5.0:javaagent")) diff --git a/instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/build.gradle.kts b/instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/build.gradle.kts index 15bdfd6b98..f65c767968 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/build.gradle.kts +++ b/instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/build.gradle.kts @@ -32,7 +32,7 @@ dependencies { isTransitive = false } - implementation(project(":instrumentation:elasticsearch:elasticsearch-transport-common:library")) + implementation(project(":instrumentation:elasticsearch:elasticsearch-transport-common:javaagent")) testInstrumentation(project(":instrumentation:apache-httpasyncclient-4.1:javaagent")) testInstrumentation(project(":instrumentation:netty:netty-4.1:javaagent")) diff --git a/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/build.gradle.kts b/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/build.gradle.kts index 409aa7d3b7..9e058f3860 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/build.gradle.kts +++ b/instrumentation/elasticsearch/elasticsearch-transport-6.0/javaagent/build.gradle.kts @@ -26,7 +26,7 @@ muzzle { dependencies { library("org.elasticsearch.client:transport:6.0.0") - implementation(project(":instrumentation:elasticsearch:elasticsearch-transport-common:library")) + implementation(project(":instrumentation:elasticsearch:elasticsearch-transport-common:javaagent")) // Ensure no cross interference testInstrumentation(project(":instrumentation:elasticsearch:elasticsearch-rest-5.0:javaagent")) diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/library/build.gradle.kts b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/build.gradle.kts similarity index 84% rename from instrumentation/elasticsearch/elasticsearch-transport-common/library/build.gradle.kts rename to instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/build.gradle.kts index 4de4f968d2..0e77a8934f 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-common/library/build.gradle.kts +++ b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("otel.library-instrumentation") + id("otel.javaagent-instrumentation") } dependencies { diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java similarity index 100% rename from instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java rename to instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportNetResponseAttributesGetter.java diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportRequest.java b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportRequest.java similarity index 100% rename from instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportRequest.java rename to instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticTransportRequest.java diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportAttributesGetter.java b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportAttributesGetter.java similarity index 100% rename from instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportAttributesGetter.java rename to instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportAttributesGetter.java diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportExperimentalAttributesExtractor.java b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportExperimentalAttributesExtractor.java similarity index 100% rename from instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportExperimentalAttributesExtractor.java rename to instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportExperimentalAttributesExtractor.java diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportInstrumenterFactory.java b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportInstrumenterFactory.java similarity index 95% rename from instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportInstrumenterFactory.java rename to instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportInstrumenterFactory.java index 7bbc61f511..22cfb0e320 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportInstrumenterFactory.java +++ b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/ElasticsearchTransportInstrumenterFactory.java @@ -6,18 +6,18 @@ package io.opentelemetry.javaagent.instrumentation.elasticsearch.transport; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.Config; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.db.DbClientSpanNameExtractor; +import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import org.elasticsearch.action.ActionResponse; public final class ElasticsearchTransportInstrumenterFactory { private static final boolean CAPTURE_EXPERIMENTAL_SPAN_ATTRIBUTES = - Config.get() + InstrumentationConfig.get() .getBoolean("otel.instrumentation.elasticsearch.experimental-span-attributes", false); public static Instrumenter create( diff --git a/instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/TransportActionListener.java b/instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/TransportActionListener.java similarity index 100% rename from instrumentation/elasticsearch/elasticsearch-transport-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/TransportActionListener.java rename to instrumentation/elasticsearch/elasticsearch-transport-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/TransportActionListener.java diff --git a/instrumentation/grails-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grails/GrailsSingletons.java b/instrumentation/grails-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grails/GrailsSingletons.java index d68191f99a..984f448207 100644 --- a/instrumentation/grails-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grails/GrailsSingletons.java +++ b/instrumentation/grails-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/grails/GrailsSingletons.java @@ -6,8 +6,8 @@ package io.opentelemetry.javaagent.instrumentation.grails; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public final class GrailsSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.grails-3.0"; diff --git a/instrumentation/jaxrs/jaxrs-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v1_0/JaxrsSingletons.java b/instrumentation/jaxrs/jaxrs-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v1_0/JaxrsSingletons.java index fae85492e0..51295ec064 100644 --- a/instrumentation/jaxrs/jaxrs-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v1_0/JaxrsSingletons.java +++ b/instrumentation/jaxrs/jaxrs-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/v1_0/JaxrsSingletons.java @@ -6,10 +6,10 @@ package io.opentelemetry.javaagent.instrumentation.jaxrs.v1_0; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public final class JaxrsSingletons { diff --git a/instrumentation/jaxrs/jaxrs-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/JaxrsInstrumenterFactory.java b/instrumentation/jaxrs/jaxrs-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/JaxrsInstrumenterFactory.java index 71df33e5db..d9a243a16e 100644 --- a/instrumentation/jaxrs/jaxrs-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/JaxrsInstrumenterFactory.java +++ b/instrumentation/jaxrs/jaxrs-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxrs/JaxrsInstrumenterFactory.java @@ -6,10 +6,10 @@ package io.opentelemetry.javaagent.instrumentation.jaxrs; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public final class JaxrsInstrumenterFactory { diff --git a/instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/axis2/Axis2Singletons.java b/instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/axis2/Axis2Singletons.java index a4713e3e48..2d592512fe 100644 --- a/instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/axis2/Axis2Singletons.java +++ b/instrumentation/jaxws/jaxws-2.0-axis2-1.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/axis2/Axis2Singletons.java @@ -6,8 +6,8 @@ package io.opentelemetry.javaagent.instrumentation.axis2; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public class Axis2Singletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.jaxws-2.0-axis2-1.6"; diff --git a/instrumentation/jaxws/jaxws-2.0-cxf-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cxf/CxfSingletons.java b/instrumentation/jaxws/jaxws-2.0-cxf-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cxf/CxfSingletons.java index 2ae2b90251..ae2ce18139 100644 --- a/instrumentation/jaxws/jaxws-2.0-cxf-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cxf/CxfSingletons.java +++ b/instrumentation/jaxws/jaxws-2.0-cxf-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cxf/CxfSingletons.java @@ -6,8 +6,8 @@ package io.opentelemetry.javaagent.instrumentation.cxf; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public class CxfSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.jaxws-2.0-cxf-3.0"; diff --git a/instrumentation/jaxws/jaxws-2.0-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java b/instrumentation/jaxws/jaxws-2.0-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java index de4c3824ad..b95e2ece67 100644 --- a/instrumentation/jaxws/jaxws-2.0-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java +++ b/instrumentation/jaxws/jaxws-2.0-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java @@ -6,8 +6,8 @@ package io.opentelemetry.javaagent.instrumentation.metro; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public class MetroSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.jaxws-2.0-metro-2.2"; diff --git a/instrumentation/jaxws/jaxws-2.0/javaagent/build.gradle.kts b/instrumentation/jaxws/jaxws-2.0/javaagent/build.gradle.kts index 4c62b4b80e..2a96778ed6 100644 --- a/instrumentation/jaxws/jaxws-2.0/javaagent/build.gradle.kts +++ b/instrumentation/jaxws/jaxws-2.0/javaagent/build.gradle.kts @@ -12,5 +12,5 @@ muzzle { dependencies { library("javax.xml.ws:jaxws-api:2.0") - implementation(project(":instrumentation:jaxws:jaxws-common:library")) + implementation(project(":instrumentation:jaxws:jaxws-common:javaagent")) } diff --git a/instrumentation/jaxws/jaxws-common/javaagent/build.gradle.kts b/instrumentation/jaxws/jaxws-common/javaagent/build.gradle.kts new file mode 100644 index 0000000000..0b6bd5f679 --- /dev/null +++ b/instrumentation/jaxws/jaxws-common/javaagent/build.gradle.kts @@ -0,0 +1,3 @@ +plugins { + id("otel.javaagent-instrumentation") +} diff --git a/instrumentation/jaxws/jaxws-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsCodeAttributesGetter.java b/instrumentation/jaxws/jaxws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsCodeAttributesGetter.java similarity index 100% rename from instrumentation/jaxws/jaxws-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsCodeAttributesGetter.java rename to instrumentation/jaxws/jaxws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsCodeAttributesGetter.java diff --git a/instrumentation/jaxws/jaxws-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsInstrumenterFactory.java b/instrumentation/jaxws/jaxws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsInstrumenterFactory.java similarity index 93% rename from instrumentation/jaxws/jaxws-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsInstrumenterFactory.java rename to instrumentation/jaxws/jaxws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsInstrumenterFactory.java index d35675e6e7..2d446b263e 100644 --- a/instrumentation/jaxws/jaxws-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsInstrumenterFactory.java +++ b/instrumentation/jaxws/jaxws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsInstrumenterFactory.java @@ -6,10 +6,10 @@ package io.opentelemetry.javaagent.instrumentation.jaxws.common; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public final class JaxWsInstrumenterFactory { diff --git a/instrumentation/jaxws/jaxws-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsRequest.java b/instrumentation/jaxws/jaxws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsRequest.java similarity index 100% rename from instrumentation/jaxws/jaxws-common/library/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsRequest.java rename to instrumentation/jaxws/jaxws-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jaxws/common/JaxWsRequest.java diff --git a/instrumentation/jaxws/jaxws-common/library/build.gradle.kts b/instrumentation/jaxws/jaxws-common/library/build.gradle.kts deleted file mode 100644 index 1cfd24470d..0000000000 --- a/instrumentation/jaxws/jaxws-common/library/build.gradle.kts +++ /dev/null @@ -1,3 +0,0 @@ -plugins { - id("otel.library-instrumentation") -} diff --git a/instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/build.gradle.kts b/instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/build.gradle.kts index f1fadacbef..027c32c288 100644 --- a/instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/build.gradle.kts +++ b/instrumentation/jaxws/jaxws-jws-api-1.1/javaagent/build.gradle.kts @@ -12,5 +12,5 @@ muzzle { dependencies { library("javax.jws:javax.jws-api:1.1") - implementation(project(":instrumentation:jaxws:jaxws-common:library")) + implementation(project(":instrumentation:jaxws:jaxws-common:javaagent")) } diff --git a/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsSingletons.java b/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsSingletons.java index 18e365833b..859a4d87bd 100644 --- a/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsSingletons.java +++ b/instrumentation/jms-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jms/JmsSingletons.java @@ -6,12 +6,12 @@ package io.opentelemetry.javaagent.instrumentation.jms; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessageOperation; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.messaging.MessagingSpanNameExtractor; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public final class JmsSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.jms-1.1"; diff --git a/instrumentation/jsf/jsf-mojarra-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mojarra/MojarraSingletons.java b/instrumentation/jsf/jsf-mojarra-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mojarra/MojarraSingletons.java index 63028f8e2f..5287962391 100644 --- a/instrumentation/jsf/jsf-mojarra-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mojarra/MojarraSingletons.java +++ b/instrumentation/jsf/jsf-mojarra-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mojarra/MojarraSingletons.java @@ -6,8 +6,8 @@ package io.opentelemetry.javaagent.instrumentation.mojarra; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.instrumentation.jsf.JsfErrorCauseExtractor; import io.opentelemetry.javaagent.instrumentation.jsf.JsfRequest; diff --git a/instrumentation/jsf/jsf-myfaces-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/myfaces/MyFacesSingletons.java b/instrumentation/jsf/jsf-myfaces-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/myfaces/MyFacesSingletons.java index 61c6f9e2af..36e1b60720 100644 --- a/instrumentation/jsf/jsf-myfaces-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/myfaces/MyFacesSingletons.java +++ b/instrumentation/jsf/jsf-myfaces-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/myfaces/MyFacesSingletons.java @@ -6,8 +6,8 @@ package io.opentelemetry.javaagent.instrumentation.myfaces; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.instrumentation.jsf.JsfRequest; public class MyFacesSingletons { diff --git a/instrumentation/kafka/kafka-clients/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaSingletons.java b/instrumentation/kafka/kafka-clients/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaSingletons.java index 405273dea9..6db495be87 100644 --- a/instrumentation/kafka/kafka-clients/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaSingletons.java +++ b/instrumentation/kafka/kafka-clients/kafka-clients-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkaclients/KafkaSingletons.java @@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.kafkaclients; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.kafka.internal.KafkaInstrumenterFactory; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; @@ -30,7 +31,9 @@ public final class KafkaSingletons { .setCaptureExperimentalSpanAttributes( InstrumentationConfig.get() .getBoolean("otel.instrumentation.kafka.experimental-span-attributes", false)) - .setPropagationEnabled(PROPAGATION_ENABLED); + .setPropagationEnabled(PROPAGATION_ENABLED) + .setMessagingReceiveInstrumentationEnabled( + ExperimentalConfig.get().messagingReceiveInstrumentationEnabled()); PRODUCER_INSTRUMENTER = instrumenterFactory.createProducerInstrumenter(); CONSUMER_RECEIVE_INSTRUMENTER = instrumenterFactory.createConsumerReceiveInstrumenter(); CONSUMER_PROCESS_INSTRUMENTER = instrumenterFactory.createConsumerProcessInstrumenter(); diff --git a/instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaInstrumenterFactory.java b/instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaInstrumenterFactory.java index 8a40eea5a8..fe49522e90 100644 --- a/instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaInstrumenterFactory.java +++ b/instrumentation/kafka/kafka-clients/kafka-clients-common/library/src/main/java/io/opentelemetry/instrumentation/kafka/internal/KafkaInstrumenterFactory.java @@ -6,7 +6,6 @@ package io.opentelemetry.instrumentation.kafka.internal; import io.opentelemetry.api.OpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.ErrorCauseExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; @@ -32,6 +31,7 @@ public final class KafkaInstrumenterFactory { private ErrorCauseExtractor errorCauseExtractor = ErrorCauseExtractor.jdk(); private boolean captureExperimentalSpanAttributes = false; private boolean propagationEnabled = true; + private boolean messagingReceiveInstrumentationEnabled = false; public KafkaInstrumenterFactory(OpenTelemetry openTelemetry, String instrumentationName) { this.openTelemetry = openTelemetry; @@ -54,6 +54,12 @@ public final class KafkaInstrumenterFactory { return this; } + public KafkaInstrumenterFactory setMessagingReceiveInstrumentationEnabled( + boolean messagingReceiveInstrumentationEnabled) { + this.messagingReceiveInstrumentationEnabled = messagingReceiveInstrumentationEnabled; + return this; + } + public Instrumenter, Void> createProducerInstrumenter() { return createProducerInstrumenter(Collections.emptyList()); } @@ -85,7 +91,7 @@ public final class KafkaInstrumenterFactory { MessagingSpanNameExtractor.create(getter, operation)) .addAttributesExtractor(MessagingAttributesExtractor.create(getter, operation)) .setErrorCauseExtractor(errorCauseExtractor) - .setEnabled(ExperimentalConfig.get().messagingReceiveInstrumentationEnabled()) + .setEnabled(messagingReceiveInstrumentationEnabled) .newInstrumenter(SpanKindExtractor.alwaysConsumer()); } @@ -114,7 +120,7 @@ public final class KafkaInstrumenterFactory { if (!propagationEnabled) { return builder.newInstrumenter(SpanKindExtractor.alwaysConsumer()); - } else if (ExperimentalConfig.get().messagingReceiveInstrumentationEnabled()) { + } else if (messagingReceiveInstrumentationEnabled) { builder.addSpanLinksExtractor( SpanLinksExtractor.extractFromRequest( openTelemetry.getPropagators().getTextMapPropagator(), diff --git a/instrumentation/kafka/kafka-streams-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkastreams/KafkaStreamsSingletons.java b/instrumentation/kafka/kafka-streams-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkastreams/KafkaStreamsSingletons.java index 06183528b3..b1209af170 100644 --- a/instrumentation/kafka/kafka-streams-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkastreams/KafkaStreamsSingletons.java +++ b/instrumentation/kafka/kafka-streams-0.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/kafkastreams/KafkaStreamsSingletons.java @@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.kafkastreams; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.kafka.internal.KafkaInstrumenterFactory; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; @@ -23,6 +24,8 @@ public final class KafkaStreamsSingletons { .setPropagationEnabled( InstrumentationConfig.get() .getBoolean("otel.instrumentation.kafka.client-propagation.enabled", true)) + .setMessagingReceiveInstrumentationEnabled( + ExperimentalConfig.get().messagingReceiveInstrumentationEnabled()) .createConsumerProcessInstrumenter(); public static Instrumenter, Void> 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 fad3dfa1d2..3c7dc8e2d7 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 @@ -6,9 +6,9 @@ package io.opentelemetry.javaagent.instrumentation.netty.v4_0.client; import io.netty.handler.codec.http.HttpResponse; -import io.opentelemetry.instrumentation.api.config.Config; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import io.opentelemetry.instrumentation.api.internal.DeprecatedConfigPropertyWarning; +import io.opentelemetry.javaagent.bootstrap.internal.DeprecatedConfigPropertyWarning; +import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import io.opentelemetry.javaagent.instrumentation.netty.v4.common.HttpRequestAndChannel; import io.opentelemetry.javaagent.instrumentation.netty.v4.common.client.NettyClientInstrumenterFactory; import io.opentelemetry.javaagent.instrumentation.netty.v4.common.client.NettyConnectionInstrumenter; @@ -20,7 +20,7 @@ public final class NettyClientSingletons { private static final boolean sslTelemetryEnabled; static { - Config config = Config.get(); + InstrumentationConfig config = InstrumentationConfig.get(); DeprecatedConfigPropertyWarning.warnIfUsed( config, "otel.instrumentation.netty.always-create-connect-span", diff --git a/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/client/NettyClientSingletons.java b/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/client/NettyClientSingletons.java index 2953f9f094..d64875bfb6 100644 --- a/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/client/NettyClientSingletons.java +++ b/instrumentation/netty/netty-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/netty/v4_1/client/NettyClientSingletons.java @@ -7,9 +7,9 @@ package io.opentelemetry.javaagent.instrumentation.netty.v4_1.client; import io.netty.handler.codec.http.HttpResponse; import io.netty.util.AttributeKey; -import io.opentelemetry.instrumentation.api.config.Config; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import io.opentelemetry.instrumentation.api.internal.DeprecatedConfigPropertyWarning; +import io.opentelemetry.javaagent.bootstrap.internal.DeprecatedConfigPropertyWarning; +import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import io.opentelemetry.javaagent.instrumentation.netty.v4.common.HttpRequestAndChannel; import io.opentelemetry.javaagent.instrumentation.netty.v4.common.client.NettyClientInstrumenterFactory; import io.opentelemetry.javaagent.instrumentation.netty.v4.common.client.NettyConnectionInstrumenter; @@ -26,7 +26,7 @@ public final class NettyClientSingletons { private static final boolean sslTelemetryEnabled; static { - Config config = Config.get(); + InstrumentationConfig config = InstrumentationConfig.get(); DeprecatedConfigPropertyWarning.warnIfUsed( config, "otel.instrumentation.netty.always-create-connect-span", 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 3f4b25df82..5054823dd3 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 @@ -6,7 +6,6 @@ package io.opentelemetry.javaagent.instrumentation.reactornetty.v1_0; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.Config; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.PeerServiceAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; @@ -15,7 +14,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientMetrics; import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor; import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor; import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; -import io.opentelemetry.instrumentation.api.internal.DeprecatedConfigPropertyWarning; +import io.opentelemetry.javaagent.bootstrap.internal.DeprecatedConfigPropertyWarning; +import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import io.opentelemetry.javaagent.instrumentation.netty.v4.common.client.NettyClientInstrumenterFactory; import io.opentelemetry.javaagent.instrumentation.netty.v4.common.client.NettyConnectionInstrumenter; import reactor.netty.http.client.HttpClientConfig; @@ -28,7 +28,7 @@ public final class ReactorNettySingletons { private static final boolean connectionTelemetryEnabled; static { - Config config = Config.get(); + InstrumentationConfig config = InstrumentationConfig.get(); DeprecatedConfigPropertyWarning.warnIfUsed( config, "otel.instrumentation.reactor-netty.always-create-connect-span", diff --git a/instrumentation/spring/spring-integration-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/integration/SpringIntegrationSingletons.java b/instrumentation/spring/spring-integration-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/integration/SpringIntegrationSingletons.java index 0d9fa40f30..e7f96144e9 100644 --- a/instrumentation/spring/spring-integration-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/integration/SpringIntegrationSingletons.java +++ b/instrumentation/spring/spring-integration-4.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/integration/SpringIntegrationSingletons.java @@ -22,7 +22,12 @@ public final class SpringIntegrationSingletons { singletonList("*")); private static final ChannelInterceptor INTERCEPTOR = - SpringIntegrationTelemetry.create(GlobalOpenTelemetry.get()).newChannelInterceptor(); + SpringIntegrationTelemetry.builder(GlobalOpenTelemetry.get()) + .setProducerSpanEnabled( + InstrumentationConfig.get() + .getBoolean("otel.instrumentation.spring-integration.producer.enabled", false)) + .build() + .newChannelInterceptor(); public static String[] patterns() { return PATTERNS.toArray(new String[0]); diff --git a/instrumentation/spring/spring-integration-4.1/library/build.gradle.kts b/instrumentation/spring/spring-integration-4.1/library/build.gradle.kts index 5f2e8e7a70..1e07bf01d6 100644 --- a/instrumentation/spring/spring-integration-4.1/library/build.gradle.kts +++ b/instrumentation/spring/spring-integration-4.1/library/build.gradle.kts @@ -17,26 +17,8 @@ dependencies { } tasks { - val testWithProducerInstrumentation by registering(Test::class) { - filter { - includeTestsMatching("SpringCloudStreamProducerTest") - } - include("**/SpringCloudStreamProducerTest.*") - jvmArgs("-Dotel.instrumentation.spring-integration.producer.enabled=true") - } - - test { - filter { - excludeTestsMatching("SpringCloudStreamProducerTest") - } - } - - check { - dependsOn(testWithProducerInstrumentation) - } - withType().configureEach { systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean) - usesService(gradle.sharedServices.registrations["testcontainersBuildService"].getService()) + usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service) } } diff --git a/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/SpringIntegrationTelemetry.java b/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/SpringIntegrationTelemetry.java index 9ab97b2e2a..9ca5f4a80d 100644 --- a/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/SpringIntegrationTelemetry.java +++ b/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/SpringIntegrationTelemetry.java @@ -34,14 +34,17 @@ public final class SpringIntegrationTelemetry { private final ContextPropagators propagators; private final Instrumenter consumerInstrumenter; private final Instrumenter producerInstrumenter; + private final boolean producerSpanEnabled; SpringIntegrationTelemetry( ContextPropagators propagators, Instrumenter consumerInstrumenter, - Instrumenter producerInstrumenter) { + Instrumenter producerInstrumenter, + boolean producerSpanEnabled) { this.propagators = propagators; this.consumerInstrumenter = consumerInstrumenter; this.producerInstrumenter = producerInstrumenter; + this.producerSpanEnabled = producerSpanEnabled; } /** @@ -54,6 +57,7 @@ public final class SpringIntegrationTelemetry { * @see org.springframework.integration.config.GlobalChannelInterceptor */ public ChannelInterceptor newChannelInterceptor() { - return new TracingChannelInterceptor(propagators, consumerInstrumenter, producerInstrumenter); + return new TracingChannelInterceptor( + propagators, consumerInstrumenter, producerInstrumenter, producerSpanEnabled); } } diff --git a/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/SpringIntegrationTelemetryBuilder.java b/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/SpringIntegrationTelemetryBuilder.java index a15a84910b..b1887a452a 100644 --- a/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/SpringIntegrationTelemetryBuilder.java +++ b/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/SpringIntegrationTelemetryBuilder.java @@ -6,6 +6,7 @@ package io.opentelemetry.instrumentation.spring.integration; import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.trace.SpanKind; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; @@ -22,6 +23,8 @@ public final class SpringIntegrationTelemetryBuilder { private final List> additionalAttributeExtractors = new ArrayList<>(); + private boolean producerSpanEnabled = false; + SpringIntegrationTelemetryBuilder(OpenTelemetry openTelemetry) { this.openTelemetry = openTelemetry; } @@ -36,6 +39,15 @@ public final class SpringIntegrationTelemetryBuilder { return this; } + /** + * Sets whether additional {@link SpanKind#PRODUCER PRODUCER} span should be emitted by this + * instrumentation. + */ + public SpringIntegrationTelemetryBuilder setProducerSpanEnabled(boolean producerSpanEnabled) { + this.producerSpanEnabled = producerSpanEnabled; + return this; + } + private static String consumerSpanName(MessageWithChannel messageWithChannel) { return messageWithChannel.getChannelName() + " process"; } @@ -71,6 +83,9 @@ public final class SpringIntegrationTelemetryBuilder { SpringMessagingAttributesGetter.INSTANCE, MessageOperation.SEND)) .newInstrumenter(SpanKindExtractor.alwaysProducer()); return new SpringIntegrationTelemetry( - openTelemetry.getPropagators(), consumerInstrumenter, producerInstrumenter); + openTelemetry.getPropagators(), + consumerInstrumenter, + producerInstrumenter, + producerSpanEnabled); } } diff --git a/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java b/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java index 913eebc0cc..5b79768425 100644 --- a/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java +++ b/instrumentation/spring/spring-integration-4.1/library/src/main/java/io/opentelemetry/instrumentation/spring/integration/TracingChannelInterceptor.java @@ -8,7 +8,6 @@ package io.opentelemetry.instrumentation.spring.integration; import io.opentelemetry.api.trace.Span; import io.opentelemetry.context.Context; import io.opentelemetry.context.propagation.ContextPropagators; -import io.opentelemetry.instrumentation.api.config.Config; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -29,23 +28,23 @@ import org.springframework.util.LinkedMultiValueMap; final class TracingChannelInterceptor implements ExecutorChannelInterceptor { - private static final boolean PRODUCER_SPAN_ENABLED = - Config.get().getBoolean("otel.instrumentation.spring-integration.producer.enabled", false); - private static final ThreadLocal> LOCAL_CONTEXT_AND_SCOPE = ThreadLocal.withInitial(IdentityHashMap::new); private final ContextPropagators propagators; private final Instrumenter consumerInstrumenter; private final Instrumenter producerInstrumenter; + private final boolean producerSpanEnabled; TracingChannelInterceptor( ContextPropagators propagators, Instrumenter consumerInstrumenter, - Instrumenter producerInstrumenter) { + Instrumenter producerInstrumenter, + boolean producerSpanEnabled) { this.propagators = propagators; this.consumerInstrumenter = consumerInstrumenter; this.producerInstrumenter = producerInstrumenter; + this.producerSpanEnabled = producerSpanEnabled; } @Override @@ -230,8 +229,8 @@ final class TracingChannelInterceptor implements ExecutorChannelInterceptor { } } - private static boolean createProducerSpan(MessageChannel messageChannel) { - if (!PRODUCER_SPAN_ENABLED) { + private boolean createProducerSpan(MessageChannel messageChannel) { + if (!producerSpanEnabled) { return false; } diff --git a/instrumentation/spring/spring-integration-4.1/library/src/test/groovy/GlobalInterceptorWithProducerSpanSpringConfig.groovy b/instrumentation/spring/spring-integration-4.1/library/src/test/groovy/GlobalInterceptorWithProducerSpanSpringConfig.groovy new file mode 100644 index 0000000000..7dde8553c7 --- /dev/null +++ b/instrumentation/spring/spring-integration-4.1/library/src/test/groovy/GlobalInterceptorWithProducerSpanSpringConfig.groovy @@ -0,0 +1,24 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +import io.opentelemetry.api.GlobalOpenTelemetry +import io.opentelemetry.instrumentation.spring.integration.SpringIntegrationTelemetry +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.integration.config.GlobalChannelInterceptor +import org.springframework.messaging.support.ChannelInterceptor + +@Configuration +class GlobalInterceptorWithProducerSpanSpringConfig { + + @GlobalChannelInterceptor + @Bean + ChannelInterceptor otelInterceptor() { + SpringIntegrationTelemetry.builder(GlobalOpenTelemetry.get()) + .setProducerSpanEnabled(true) + .build() + .newChannelInterceptor() + } +} diff --git a/instrumentation/spring/spring-integration-4.1/library/src/test/groovy/SpringCloudStreamProducerTest.groovy b/instrumentation/spring/spring-integration-4.1/library/src/test/groovy/SpringCloudStreamProducerTest.groovy index 90b588087a..33427f9196 100644 --- a/instrumentation/spring/spring-integration-4.1/library/src/test/groovy/SpringCloudStreamProducerTest.groovy +++ b/instrumentation/spring/spring-integration-4.1/library/src/test/groovy/SpringCloudStreamProducerTest.groovy @@ -8,6 +8,6 @@ import io.opentelemetry.instrumentation.test.LibraryTestTrait class SpringCloudStreamProducerTest extends AbstractSpringCloudStreamProducerTest implements LibraryTestTrait { @Override Class additionalContextClass() { - GlobalInterceptorSpringConfig + GlobalInterceptorWithProducerSpanSpringConfig } } diff --git a/instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/SpringKafkaSingletons.java b/instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/SpringKafkaSingletons.java index 83872b96a1..f157950ea5 100644 --- a/instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/SpringKafkaSingletons.java +++ b/instrumentation/spring/spring-kafka-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/kafka/SpringKafkaSingletons.java @@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.spring.kafka; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.kafka.internal.KafkaInstrumenterFactory; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; @@ -28,6 +29,8 @@ public final class SpringKafkaSingletons { .setPropagationEnabled( InstrumentationConfig.get() .getBoolean("otel.instrumentation.kafka.client-propagation.enabled", true)) + .setMessagingReceiveInstrumentationEnabled( + ExperimentalConfig.get().messagingReceiveInstrumentationEnabled()) .setErrorCauseExtractor(SpringKafkaErrorCauseExtractor.INSTANCE); BATCH_PROCESS_INSTRUMENTER = factory.createBatchProcessInstrumenter(); PROCESS_INSTRUMENTER = factory.createConsumerProcessInstrumenter(); diff --git a/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/client/WebClientHelper.java b/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/client/WebClientHelper.java index 8aa9efe117..4bc8c4ff99 100644 --- a/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/client/WebClientHelper.java +++ b/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/client/WebClientHelper.java @@ -7,13 +7,19 @@ package io.opentelemetry.javaagent.instrumentation.spring.webflux.client; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.instrumentation.spring.webflux.client.SpringWebfluxTelemetry; +import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import java.util.List; import org.springframework.web.reactive.function.client.ExchangeFilterFunction; public class WebClientHelper { private static final SpringWebfluxTelemetry INSTRUMENTATION = - SpringWebfluxTelemetry.create(GlobalOpenTelemetry.get()); + SpringWebfluxTelemetry.builder(GlobalOpenTelemetry.get()) + .setCaptureExperimentalSpanAttributes( + InstrumentationConfig.get() + .getBoolean( + "otel.instrumentation.spring-webflux.experimental-span-attributes", false)) + .build(); public static void addFilter(List exchangeFilterFunctions) { INSTRUMENTATION.addClientTracingFilter(exchangeFilterFunctions); diff --git a/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java b/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java index 42f4c85a3b..b028743f37 100644 --- a/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java +++ b/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java @@ -6,10 +6,10 @@ package io.opentelemetry.javaagent.instrumentation.spring.webflux.server; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.InstrumenterBuilder; import io.opentelemetry.instrumentation.api.instrumenter.http.HttpRouteGetter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.instrumentation.spring.webflux.SpringWebfluxConfig; import org.springframework.web.reactive.HandlerMapping; import org.springframework.web.server.ServerWebExchange; diff --git a/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxExperimentalAttributesExtractor.java b/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxExperimentalAttributesExtractor.java index 1cfb3a2882..7a65bbff9d 100644 --- a/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxExperimentalAttributesExtractor.java +++ b/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxExperimentalAttributesExtractor.java @@ -10,7 +10,6 @@ import static io.opentelemetry.api.common.AttributeKey.stringKey; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.context.Context; -import io.opentelemetry.instrumentation.api.config.Config; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import javax.annotation.Nullable; import org.springframework.web.reactive.function.client.ClientRequest; @@ -24,11 +23,6 @@ final class SpringWebfluxExperimentalAttributesExtractor private static final AttributeKey SPRING_WEBFLUX_MESSAGE = stringKey("spring-webflux.message"); - public static boolean enabled() { - return Config.get() - .getBoolean("otel.instrumentation.spring-webflux.experimental-span-attributes", false); - } - @Override public void onStart(AttributesBuilder attributes, Context parentContext, ClientRequest request) {} diff --git a/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxTelemetryBuilder.java b/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxTelemetryBuilder.java index f6941ccfe4..2444f8b8bb 100644 --- a/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxTelemetryBuilder.java +++ b/instrumentation/spring/spring-webflux-5.0/library/src/main/java/io/opentelemetry/instrumentation/spring/webflux/client/SpringWebfluxTelemetryBuilder.java @@ -33,6 +33,8 @@ public final class SpringWebfluxTelemetryBuilder { httpAttributesExtractorBuilder = HttpClientAttributesExtractor.builder(SpringWebfluxHttpAttributesGetter.INSTANCE); + private boolean captureExperimentalSpanAttributes = false; + SpringWebfluxTelemetryBuilder(OpenTelemetry openTelemetry) { this.openTelemetry = openTelemetry; } @@ -67,6 +69,17 @@ public final class SpringWebfluxTelemetryBuilder { return this; } + /** + * Sets whether experimental attributes should be set to spans. These attributes may be changed or + * removed in the future, so only enable this if you know you do not require attributes filled by + * this instrumentation to be stable across versions. + */ + public SpringWebfluxTelemetryBuilder setCaptureExperimentalSpanAttributes( + boolean captureExperimentalSpanAttributes) { + this.captureExperimentalSpanAttributes = captureExperimentalSpanAttributes; + return this; + } + /** * Returns a new {@link SpringWebfluxTelemetry} with the settings of this {@link * SpringWebfluxTelemetryBuilder}. @@ -90,7 +103,7 @@ public final class SpringWebfluxTelemetryBuilder { .addAttributesExtractors(additionalExtractors) .addOperationMetrics(HttpClientMetrics.get()); - if (SpringWebfluxExperimentalAttributesExtractor.enabled()) { + if (captureExperimentalSpanAttributes) { builder.addAttributesExtractor(new SpringWebfluxExperimentalAttributesExtractor()); } diff --git a/instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcSingletons.java b/instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcSingletons.java index bcadaf0f96..11bcc3192b 100644 --- a/instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcSingletons.java +++ b/instrumentation/spring/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/springwebmvc/SpringWebMvcSingletons.java @@ -6,8 +6,8 @@ package io.opentelemetry.javaagent.instrumentation.springwebmvc; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import org.springframework.web.servlet.ModelAndView; public final class SpringWebMvcSingletons { diff --git a/instrumentation/spring/spring-ws-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/ws/SpringWsSingletons.java b/instrumentation/spring/spring-ws-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/ws/SpringWsSingletons.java index 3d44ab4df9..73d7f5b6f3 100644 --- a/instrumentation/spring/spring-ws-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/ws/SpringWsSingletons.java +++ b/instrumentation/spring/spring-ws-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/ws/SpringWsSingletons.java @@ -6,10 +6,10 @@ package io.opentelemetry.javaagent.instrumentation.spring.ws; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public class SpringWsSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.spring-ws-2.0"; diff --git a/instrumentation/struts-2.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/struts2/StrutsSingletons.java b/instrumentation/struts-2.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/struts2/StrutsSingletons.java index 6a65b13ca1..97b5eb1ae2 100644 --- a/instrumentation/struts-2.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/struts2/StrutsSingletons.java +++ b/instrumentation/struts-2.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/struts2/StrutsSingletons.java @@ -7,10 +7,10 @@ package io.opentelemetry.javaagent.instrumentation.struts2; import com.opensymphony.xwork2.ActionInvocation; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public class StrutsSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.struts-2.3"; diff --git a/instrumentation/tapestry-5.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tapestry/TapestrySingletons.java b/instrumentation/tapestry-5.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tapestry/TapestrySingletons.java index cd1dedaff0..b9df3d9b73 100644 --- a/instrumentation/tapestry-5.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tapestry/TapestrySingletons.java +++ b/instrumentation/tapestry-5.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tapestry/TapestrySingletons.java @@ -6,9 +6,9 @@ package io.opentelemetry.javaagent.instrumentation.tapestry; import io.opentelemetry.api.GlobalOpenTelemetry; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.ErrorCauseExtractor; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import org.apache.tapestry5.runtime.ComponentEventException; public class TapestrySingletons { diff --git a/instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java b/instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java index 067230c8b5..b88a44ad54 100644 --- a/instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java +++ b/instrumentation/vaadin-14.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vaadin/VaadinSingletons.java @@ -8,11 +8,11 @@ package io.opentelemetry.javaagent.instrumentation.vaadin; import com.vaadin.flow.server.communication.rpc.RpcInvocationHandler; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.context.ContextKey; -import io.opentelemetry.instrumentation.api.config.ExperimentalConfig; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeAttributesExtractor; import io.opentelemetry.instrumentation.api.instrumenter.code.CodeSpanNameExtractor; import io.opentelemetry.instrumentation.api.util.SpanNames; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; public class VaadinSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.vaadin-14.2"; diff --git a/instrumentation/vertx/vertx-kafka-client-3.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/kafka/v3_6/VertxKafkaSingletons.java b/instrumentation/vertx/vertx-kafka-client-3.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/kafka/v3_6/VertxKafkaSingletons.java index 29f18e657e..9cf1d4156d 100644 --- a/instrumentation/vertx/vertx-kafka-client-3.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/kafka/v3_6/VertxKafkaSingletons.java +++ b/instrumentation/vertx/vertx-kafka-client-3.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/kafka/v3_6/VertxKafkaSingletons.java @@ -8,6 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.vertx.kafka.v3_6; import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.kafka.internal.KafkaInstrumenterFactory; +import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; import io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.apache.kafka.clients.consumer.ConsumerRecords; @@ -27,7 +28,9 @@ public final class VertxKafkaSingletons { .getBoolean("otel.instrumentation.kafka.experimental-span-attributes", false)) .setPropagationEnabled( InstrumentationConfig.get() - .getBoolean("otel.instrumentation.kafka.client-propagation.enabled", true)); + .getBoolean("otel.instrumentation.kafka.client-propagation.enabled", true)) + .setMessagingReceiveInstrumentationEnabled( + ExperimentalConfig.get().messagingReceiveInstrumentationEnabled()); BATCH_PROCESS_INSTRUMENTER = factory.createBatchProcessInstrumenter(); PROCESS_INSTRUMENTER = factory.createConsumerProcessInstrumenter(); } diff --git a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/internal/DeprecatedConfigPropertyWarning.java b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/DeprecatedConfigPropertyWarning.java similarity index 76% rename from instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/internal/DeprecatedConfigPropertyWarning.java rename to javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/DeprecatedConfigPropertyWarning.java index 04a500e84c..9cb91e46c6 100644 --- a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/internal/DeprecatedConfigPropertyWarning.java +++ b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/DeprecatedConfigPropertyWarning.java @@ -3,25 +3,23 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.api.internal; +package io.opentelemetry.javaagent.bootstrap.internal; import static java.util.logging.Level.WARNING; -import io.opentelemetry.instrumentation.api.config.Config; import java.util.logging.Logger; /** * This class is internal and is hence not for public use. Its APIs are unstable and can change at * any time. */ -// TODO: move to javaagent-extension-api internal package public final class DeprecatedConfigPropertyWarning { private static final Logger logger = Logger.getLogger(DeprecatedConfigPropertyWarning.class.getName()); public static void warnIfUsed( - Config config, String deprecatedPropertyName, String newPropertyName) { + InstrumentationConfig config, String deprecatedPropertyName, String newPropertyName) { if (config.getString(deprecatedPropertyName) != null) { logger.log( WARNING, diff --git a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/config/ExperimentalConfig.java b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/ExperimentalConfig.java similarity index 84% rename from instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/config/ExperimentalConfig.java rename to javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/ExperimentalConfig.java index 09ec7ebad9..48a887876f 100644 --- a/instrumentation-api-semconv/src/main/java/io/opentelemetry/instrumentation/api/config/ExperimentalConfig.java +++ b/javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/bootstrap/internal/ExperimentalConfig.java @@ -3,23 +3,25 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.api.config; +package io.opentelemetry.javaagent.bootstrap.internal; -import io.opentelemetry.instrumentation.api.internal.DeprecatedConfigPropertyWarning; - -// TODO: move to javaagent-extension-api internal package +/** + * This class is internal and is hence not for public use. Its APIs are unstable and can change at + * any time. + */ public final class ExperimentalConfig { - private static final ExperimentalConfig instance = new ExperimentalConfig(Config.get()); + private static final ExperimentalConfig instance = + new ExperimentalConfig(InstrumentationConfig.get()); - private final Config config; + private final InstrumentationConfig config; /** Returns the global agent configuration. */ public static ExperimentalConfig get() { return instance; } - public ExperimentalConfig(Config config) { + public ExperimentalConfig(InstrumentationConfig config) { this.config = config; } diff --git a/settings.gradle.kts b/settings.gradle.kts index 8ae7a11018..a9bb03847f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -208,7 +208,7 @@ include(":instrumentation:elasticsearch:elasticsearch-rest-common:javaagent") include(":instrumentation:elasticsearch:elasticsearch-rest-5.0:javaagent") include(":instrumentation:elasticsearch:elasticsearch-rest-6.4:javaagent") include(":instrumentation:elasticsearch:elasticsearch-rest-7.0:javaagent") -include(":instrumentation:elasticsearch:elasticsearch-transport-common:library") +include(":instrumentation:elasticsearch:elasticsearch-transport-common:javaagent") include(":instrumentation:elasticsearch:elasticsearch-transport-common:testing") include(":instrumentation:elasticsearch:elasticsearch-transport-5.0:javaagent") include(":instrumentation:elasticsearch:elasticsearch-transport-5.3:javaagent") @@ -273,7 +273,7 @@ include(":instrumentation:jaxws:jaxws-2.0-metro-2.2:javaagent") include(":instrumentation:jaxws:jaxws-2.0-common-testing") include(":instrumentation:jaxws:jaxws-2.0-tomee-testing") include(":instrumentation:jaxws:jaxws-2.0-wildfly-testing") -include(":instrumentation:jaxws:jaxws-common:library") +include(":instrumentation:jaxws:jaxws-common:javaagent") include(":instrumentation:jaxws:jaxws-jws-api-1.1:javaagent") include(":instrumentation:jboss-logmanager:jboss-logmanager-appender-1.1:javaagent") include(":instrumentation:jboss-logmanager:jboss-logmanager-mdc-1.1:javaagent")