diff --git a/conventions/src/main/kotlin/io.opentelemetry.instrumentation.javaagent-testing.gradle.kts b/conventions/src/main/kotlin/io.opentelemetry.instrumentation.javaagent-testing.gradle.kts index e58dceb7c9db..d06428c99f16 100644 --- a/conventions/src/main/kotlin/io.opentelemetry.instrumentation.javaagent-testing.gradle.kts +++ b/conventions/src/main/kotlin/io.opentelemetry.instrumentation.javaagent-testing.gradle.kts @@ -79,7 +79,7 @@ class JavaagentTestArgumentsProvider( "-Dotel.javaagent.testing.javaagent-jar-path=${agentShadowJar.absolutePath}", "-Dotel.javaagent.experimental.initializer.jar=${shadowJar.absolutePath}", "-Dotel.javaagent.testing.additional-library-ignores.enabled=false", - "-Dotel.javaagent.testing.fail-on-context-leak=${findProperty("failOnContextLeak")!=false}", + "-Dotel.javaagent.testing.fail-on-context-leak=${findProperty("failOnContextLeak") != false}", // prevent sporadic gradle deadlocks, see SafeLogger for more details "-Dotel.javaagent.testing.transform-safe-logging.enabled=true", // Reduce noise in assertion messages since we don't need to verify this in most tests. We check diff --git a/instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java b/instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java index db9536afed34..bc9867c2160e 100644 --- a/instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java +++ b/instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java @@ -6,9 +6,9 @@ package io.opentelemetry.javaagent.instrumentation.jul; import application.java.util.logging.Logger; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.api.logs.LogRecordBuilder; import io.opentelemetry.api.logs.Severity; import io.opentelemetry.context.Context; @@ -41,7 +41,11 @@ public static void capture(Logger logger, LogRecord logRecord) { instrumentationName = "ROOT"; } LogRecordBuilder builder = - GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder(); + GlobalOpenTelemetry.get() + .getLogsBridge() + .loggerBuilder(instrumentationName) + .build() + .logRecordBuilder(); mapLogRecord(builder, logRecord); builder.emit(); } @@ -80,6 +84,8 @@ private static void mapLogRecord(LogRecordBuilder builder, LogRecord logRecord) // throwable Throwable throwable = logRecord.getThrown(); if (throwable != null) { + // TODO (trask) extract method for recording exception into + // io.opentelemetry:opentelemetry-api attributes.put(SemanticAttributes.EXCEPTION_TYPE, throwable.getClass().getName()); attributes.put(SemanticAttributes.EXCEPTION_MESSAGE, throwable.getMessage()); StringWriter writer = new StringWriter(); diff --git a/instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java b/instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java index 72d513eee319..5bbe19c51ce9 100644 --- a/instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java +++ b/instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java @@ -7,10 +7,10 @@ import static java.util.Collections.emptyList; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.api.logs.LogRecordBuilder; import io.opentelemetry.api.logs.Severity; import io.opentelemetry.context.Context; @@ -58,7 +58,11 @@ public void capture(Logger logger, ExtLogRecord record) { } LogRecordBuilder builder = - GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder(); + GlobalOpenTelemetry.get() + .getLogsBridge() + .loggerBuilder(instrumentationName) + .build() + .logRecordBuilder(); String message = record.getFormattedMessage(); if (message != null) { diff --git a/instrumentation/jms/jms-1.1/javaagent/src/jms2Test/groovy/Jms2Test.groovy b/instrumentation/jms/jms-1.1/javaagent/src/jms2Test/groovy/Jms2Test.groovy index 222e5b91b814..770586e3cf87 100644 --- a/instrumentation/jms/jms-1.1/javaagent/src/jms2Test/groovy/Jms2Test.groovy +++ b/instrumentation/jms/jms-1.1/javaagent/src/jms2Test/groovy/Jms2Test.groovy @@ -69,7 +69,7 @@ class Jms2Test extends AgentInstrumentationSpecification { serverLocator.close() def connectionFactory = HornetQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, - new TransportConfiguration(InVMConnectorFactory.name)) + new TransportConfiguration(InVMConnectorFactory.name)) def connection = connectionFactory.createConnection() connection.start() diff --git a/instrumentation/jms/jms-1.1/javaagent/src/test/groovy/Jms1Test.groovy b/instrumentation/jms/jms-1.1/javaagent/src/test/groovy/Jms1Test.groovy index fe16b127a94a..330dc33851df 100644 --- a/instrumentation/jms/jms-1.1/javaagent/src/test/groovy/Jms1Test.groovy +++ b/instrumentation/jms/jms-1.1/javaagent/src/test/groovy/Jms1Test.groovy @@ -3,7 +3,6 @@ * SPDX-License-Identifier: Apache-2.0 */ - import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.instrumentation.test.asserts.TraceAssert import io.opentelemetry.sdk.trace.data.SpanData @@ -17,7 +16,11 @@ import org.testcontainers.containers.output.Slf4jLogConsumer import spock.lang.Shared import spock.lang.Unroll -import javax.jms.* +import javax.jms.Connection +import javax.jms.Message +import javax.jms.MessageListener +import javax.jms.Session +import javax.jms.TextMessage import java.util.concurrent.CountDownLatch import java.util.concurrent.atomic.AtomicReference @@ -30,8 +33,8 @@ class Jms1Test extends AgentInstrumentationSpecification { private static final Logger logger = LoggerFactory.getLogger(Jms1Test) private static final GenericContainer broker = new GenericContainer("rmohr/activemq:latest") - .withExposedPorts(61616, 8161) - .withLogConsumer(new Slf4jLogConsumer(logger)) + .withExposedPorts(61616, 8161) + .withLogConsumer(new Slf4jLogConsumer(logger)) @Shared String messageText = "a message" diff --git a/instrumentation/jms/jms-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jms/v3_0/Jms3InstrumentationTest.java b/instrumentation/jms/jms-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jms/v3_0/Jms3InstrumentationTest.java index 190b69ddf597..463524cd2223 100644 --- a/instrumentation/jms/jms-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jms/v3_0/Jms3InstrumentationTest.java +++ b/instrumentation/jms/jms-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jms/v3_0/Jms3InstrumentationTest.java @@ -107,8 +107,7 @@ static void tearDown() throws JMSException { @ArgumentsSource(DestinationsProvider.class) @ParameterizedTest - void testMessageConsumer( - DestinationFactory destinationFactory, boolean isTemporary) + void testMessageConsumer(DestinationFactory destinationFactory, boolean isTemporary) throws JMSException { // given @@ -172,8 +171,7 @@ void testMessageConsumer( @ArgumentsSource(DestinationsProvider.class) @ParameterizedTest - void testMessageListener( - DestinationFactory destinationFactory, boolean isTemporary) + void testMessageListener(DestinationFactory destinationFactory, boolean isTemporary) throws Exception { // given @@ -254,8 +252,7 @@ void shouldNotEmitTelemetryOnEmptyReceive( @ArgumentsSource(DestinationsProvider.class) @ParameterizedTest - void shouldCaptureMessageHeaders( - DestinationFactory destinationFactory, boolean isTemporary) + void shouldCaptureMessageHeaders(DestinationFactory destinationFactory, boolean isTemporary) throws Exception { // given diff --git a/instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsDefaultTest.groovy b/instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsDefaultTest.groovy index c0f138fd6e75..385a078b8e52 100644 --- a/instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsDefaultTest.groovy +++ b/instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsDefaultTest.groovy @@ -42,13 +42,13 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest { } KStream textLines = builder.stream(STREAM_PENDING) def values = textLines - .mapValues(new ValueMapper() { - @Override - String apply(String textLine) { - Span.current().setAttribute("asdf", "testing") - return textLine.toLowerCase() - } - }) + .mapValues(new ValueMapper() { + @Override + String apply(String textLine) { + Span.current().setAttribute("asdf", "testing") + return textLine.toLowerCase() + } + }) KafkaStreams streams try { @@ -57,7 +57,7 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest { streams = new KafkaStreams(builder, config) } catch (MissingMethodException e) { def producer = Class.forName("org.apache.kafka.streams.kstream.Produced") - .with(Serdes.Integer(), Serdes.String()) + .with(Serdes.Integer(), Serdes.String()) values.to(STREAM_PROCESSED, producer) streams = new KafkaStreams(builder.build(), config) } @@ -84,9 +84,9 @@ class KafkaStreamsDefaultTest extends KafkaStreamsBaseTest { assertTraces(3) { traces.sort(orderByRootSpanName( - STREAM_PENDING + " send", - STREAM_PENDING + " receive", - STREAM_PROCESSED + " receive")) + STREAM_PENDING + " send", + STREAM_PENDING + " receive", + STREAM_PROCESSED + " receive")) SpanData producerPending, producerProcessed diff --git a/instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsSuppressReceiveSpansTest.groovy b/instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsSuppressReceiveSpansTest.groovy index 060ebd9037bb..d686ef0f8c57 100644 --- a/instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsSuppressReceiveSpansTest.groovy +++ b/instrumentation/kafka/kafka-streams-0.11/javaagent/src/test/groovy/KafkaStreamsSuppressReceiveSpansTest.groovy @@ -42,13 +42,13 @@ class KafkaStreamsSuppressReceiveSpansTest extends KafkaStreamsBaseTest { } KStream textLines = builder.stream(STREAM_PENDING) def values = textLines - .mapValues(new ValueMapper() { - @Override - String apply(String textLine) { - Span.current().setAttribute("asdf", "testing") - return textLine.toLowerCase() - } - }) + .mapValues(new ValueMapper() { + @Override + String apply(String textLine) { + Span.current().setAttribute("asdf", "testing") + return textLine.toLowerCase() + } + }) KafkaStreams streams try { @@ -57,7 +57,7 @@ class KafkaStreamsSuppressReceiveSpansTest extends KafkaStreamsBaseTest { streams = new KafkaStreams(builder, config) } catch (MissingMethodException e) { def producer = Class.forName("org.apache.kafka.streams.kstream.Produced") - .with(Serdes.Integer(), Serdes.String()) + .with(Serdes.Integer(), Serdes.String()) values.to(STREAM_PROCESSED, producer) streams = new KafkaStreams(builder.build(), config) } diff --git a/instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java b/instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java index 12209df13ae5..21d57b044e5f 100644 --- a/instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java +++ b/instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java @@ -7,10 +7,10 @@ import static java.util.Collections.emptyList; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.api.logs.LogRecordBuilder; import io.opentelemetry.api.logs.Severity; import io.opentelemetry.context.Context; @@ -64,7 +64,11 @@ public void capture(Category logger, Priority level, Object message, Throwable t instrumentationName = "ROOT"; } LogRecordBuilder builder = - GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder(); + GlobalOpenTelemetry.get() + .getLogsBridge() + .loggerBuilder(instrumentationName) + .build() + .logRecordBuilder(); // message if (message != null) { diff --git a/instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_17/Log4jHelper.java b/instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_17/Log4jHelper.java index d15cddca5fa8..5d0cf18b17e1 100644 --- a/instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_17/Log4jHelper.java +++ b/instrumentation/log4j/log4j-appender-2.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_17/Log4jHelper.java @@ -7,7 +7,7 @@ import static java.util.Collections.emptyList; -import io.opentelemetry.api.logs.GlobalLoggerProvider; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.logs.LogRecordBuilder; import io.opentelemetry.instrumentation.log4j.appender.v2_17.internal.ContextDataAccessor; import io.opentelemetry.instrumentation.log4j.appender.v2_17.internal.LogEventMapper; @@ -59,7 +59,11 @@ public static void capture( instrumentationName = "ROOT"; } LogRecordBuilder builder = - GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder(); + GlobalOpenTelemetry.get() + .getLogsBridge() + .loggerBuilder(instrumentationName) + .build() + .logRecordBuilder(); Map contextData = ThreadContext.getImmutableContext(); mapper.mapLogEvent(builder, message, level, marker, throwable, contextData); builder.emit(); diff --git a/instrumentation/log4j/log4j-appender-2.17/library/README.md b/instrumentation/log4j/log4j-appender-2.17/library/README.md index de35db0e03d6..4944d252da91 100644 --- a/instrumentation/log4j/log4j-appender-2.17/library/README.md +++ b/instrumentation/log4j/log4j-appender-2.17/library/README.md @@ -14,6 +14,7 @@ release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20 For Maven, add to your `pom.xml` dependencies: ```xml + io.opentelemetry.instrumentation @@ -53,17 +54,5 @@ The following demonstrates how you might configure the appender in your `log4j.x ``` -Next, configure `GlobalLoggerProvider` with an `SdkLoggerProvider` in your application. - -``` -SdkLoggerProvider sdkLoggerProvider = - SdkLoggerProvider.builder() - .setResource(Resource.create(...)) - .addLogProcessor(...) - .build(); -GlobalLoggerProvider.set(sdkLoggerProvider); -``` - In this example Log4j2 log events will be sent to both the console appender and -the `OpenTelemetryAppender`, which will drop the logs until `GlobalLoggerProvider.set(..)` is -called. Once initialized, logs will be emitted to a `Logger` obtained from the `SdkLoggerProvider`. +the `OpenTelemetryAppender`. diff --git a/instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppender.java b/instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppender.java index b1cc3047b74a..da324cb6aa52 100644 --- a/instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppender.java +++ b/instrumentation/log4j/log4j-appender-2.17/library/src/main/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppender.java @@ -8,7 +8,7 @@ import static java.util.Collections.emptyList; import com.google.errorprone.annotations.CanIgnoreReturnValue; -import io.opentelemetry.api.logs.GlobalLoggerProvider; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.logs.LogRecordBuilder; import io.opentelemetry.instrumentation.log4j.appender.v2_17.internal.ContextDataAccessor; import io.opentelemetry.instrumentation.log4j.appender.v2_17.internal.LogEventMapper; @@ -146,7 +146,11 @@ public void append(LogEvent event) { instrumentationName = "ROOT"; } LogRecordBuilder builder = - GlobalLoggerProvider.get().loggerBuilder(instrumentationName).build().logRecordBuilder(); + GlobalOpenTelemetry.get() + .getLogsBridge() + .loggerBuilder(instrumentationName) + .build() + .logRecordBuilder(); ReadOnlyStringMap contextData = event.getContextData(); mapper.mapLogEvent( builder, diff --git a/instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppenderConfigTest.java b/instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppenderConfigTest.java index 2176439232f6..243fa02efec9 100644 --- a/instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppenderConfigTest.java +++ b/instrumentation/log4j/log4j-appender-2.17/library/src/test/java/io/opentelemetry/instrumentation/log4j/appender/v2_17/OpenTelemetryAppenderConfigTest.java @@ -6,16 +6,17 @@ package io.opentelemetry.instrumentation.log4j.appender.v2_17; import static io.opentelemetry.api.common.AttributeKey.stringKey; -import static io.opentelemetry.sdk.testing.assertj.LogAssertions.assertThat; +import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo; import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.api.logs.Severity; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanContext; import io.opentelemetry.context.Scope; +import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.common.InstrumentationScopeInfo; import io.opentelemetry.sdk.logs.SdkLoggerProvider; import io.opentelemetry.sdk.logs.data.LogRecordData; @@ -60,8 +61,8 @@ static void setupAll() { .addLogRecordProcessor(SimpleLogRecordProcessor.create(logRecordExporter)) .build(); - GlobalLoggerProvider.resetForTest(); - GlobalLoggerProvider.set(loggerProvider); + GlobalOpenTelemetry.resetForTest(); + GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().setLoggerProvider(loggerProvider).build()); } @BeforeEach diff --git a/instrumentation/logback/logback-appender-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/appender/v1_0/LogbackInstrumentation.java b/instrumentation/logback/logback-appender-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/appender/v1_0/LogbackInstrumentation.java index 57bf5df94b9f..cbd366729750 100644 --- a/instrumentation/logback/logback-appender-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/appender/v1_0/LogbackInstrumentation.java +++ b/instrumentation/logback/logback-appender-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/appender/v1_0/LogbackInstrumentation.java @@ -13,7 +13,7 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments; import ch.qos.logback.classic.spi.ILoggingEvent; -import io.opentelemetry.api.logs.GlobalLoggerProvider; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.logs.LoggerProvider; import io.opentelemetry.javaagent.bootstrap.CallDepth; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; @@ -51,7 +51,7 @@ public static void methodEnter( // logging framework delegates to another callDepth = CallDepth.forClass(LoggerProvider.class); if (callDepth.getAndIncrement() == 0) { - mapper().emit(GlobalLoggerProvider.get(), event); + mapper().emit(GlobalOpenTelemetry.get().getLogsBridge(), event); } } diff --git a/instrumentation/logback/logback-appender-1.0/library/README.md b/instrumentation/logback/logback-appender-1.0/library/README.md index 6107ff0aea7e..171d02b63efb 100644 --- a/instrumentation/logback/logback-appender-1.0/library/README.md +++ b/instrumentation/logback/logback-appender-1.0/library/README.md @@ -14,6 +14,7 @@ release](https://search.maven.org/search?q=g:io.opentelemetry.instrumentation%20 For Maven, add to your `pom.xml` dependencies: ```xml + io.opentelemetry.instrumentation @@ -57,17 +58,5 @@ The following demonstrates how you might configure the appender in your `logback ``` -Next, configure `GlobalLoggerProvider` with an `SdkLoggerProvider` in your application. - -``` -SdkLoggerProvider sdkLoggerProvider = - SdkLoggerProvider.builder() - .setResource(Resource.create(...)) - .addLogProcessor(...) - .build(); -GlobalLoggerProvider.set(sdkLoggerProvider); -``` - In this example Logback log events will be sent to both the console appender and -the `OpenTelemetryAppender`, which will drop the logs until `GlobalLoggerProvider.set(..)` is -called. Once initialized, logs will be emitted to a `Logger` obtained from the `SdkLoggerProvider`. +the `OpenTelemetryAppender`. diff --git a/instrumentation/logback/logback-appender-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppender.java b/instrumentation/logback/logback-appender-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppender.java index 3ba8376ebafe..b161d54d6009 100644 --- a/instrumentation/logback/logback-appender-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppender.java +++ b/instrumentation/logback/logback-appender-1.0/library/src/main/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppender.java @@ -9,7 +9,7 @@ import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.UnsynchronizedAppenderBase; -import io.opentelemetry.api.logs.GlobalLoggerProvider; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.instrumentation.logback.appender.v1_0.internal.LoggingEventMapper; import java.util.Arrays; import java.util.List; @@ -42,7 +42,7 @@ public void start() { @Override protected void append(ILoggingEvent event) { - mapper.emit(GlobalLoggerProvider.get(), event); + mapper.emit(GlobalOpenTelemetry.get().getLogsBridge(), event); } /** diff --git a/instrumentation/logback/logback-appender-1.0/library/src/slf4j2ApiTest/java/io/opentelemetry/instrumentation/logback/appender/v1_0/Slf4j2Test.java b/instrumentation/logback/logback-appender-1.0/library/src/slf4j2ApiTest/java/io/opentelemetry/instrumentation/logback/appender/v1_0/Slf4j2Test.java index 6a10618a6e24..80734e80fc02 100644 --- a/instrumentation/logback/logback-appender-1.0/library/src/slf4j2ApiTest/java/io/opentelemetry/instrumentation/logback/appender/v1_0/Slf4j2Test.java +++ b/instrumentation/logback/logback-appender-1.0/library/src/slf4j2ApiTest/java/io/opentelemetry/instrumentation/logback/appender/v1_0/Slf4j2Test.java @@ -7,8 +7,9 @@ import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.logs.GlobalLoggerProvider; +import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.common.InstrumentationScopeInfo; import io.opentelemetry.sdk.logs.SdkLoggerProvider; import io.opentelemetry.sdk.logs.data.LogRecordData; @@ -43,8 +44,8 @@ static void setupAll() { .addLogRecordProcessor(SimpleLogRecordProcessor.create(logRecordExporter)) .build(); - GlobalLoggerProvider.resetForTest(); - GlobalLoggerProvider.set(loggerProvider); + GlobalOpenTelemetry.resetForTest(); + GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().setLoggerProvider(loggerProvider).build()); } @BeforeEach diff --git a/instrumentation/logback/logback-appender-1.0/library/src/test/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppenderConfigTest.java b/instrumentation/logback/logback-appender-1.0/library/src/test/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppenderConfigTest.java index cc36d6127f19..2fc5271141a8 100644 --- a/instrumentation/logback/logback-appender-1.0/library/src/test/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppenderConfigTest.java +++ b/instrumentation/logback/logback-appender-1.0/library/src/test/java/io/opentelemetry/instrumentation/logback/appender/v1_0/OpenTelemetryAppenderConfigTest.java @@ -7,12 +7,13 @@ import static org.assertj.core.api.Assertions.assertThat; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.api.logs.Severity; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.SpanContext; import io.opentelemetry.context.Scope; +import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.common.InstrumentationScopeInfo; import io.opentelemetry.sdk.logs.SdkLoggerProvider; import io.opentelemetry.sdk.logs.data.LogRecordData; @@ -54,8 +55,8 @@ static void setupAll() { .addLogRecordProcessor(SimpleLogRecordProcessor.create(logRecordExporter)) .build(); - GlobalLoggerProvider.resetForTest(); - GlobalLoggerProvider.set(loggerProvider); + GlobalOpenTelemetry.resetForTest(); + GlobalOpenTelemetry.set(OpenTelemetrySdk.builder().setLoggerProvider(loggerProvider).build()); } @BeforeEach diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java index f1b6ef95b47f..184b0ef819ea 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/ApplicationOpenTelemetry.java @@ -10,6 +10,7 @@ import application.io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.propagation.ApplicationContextPropagators; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.ApplicationTracerProvider; +import javax.annotation.Nullable; // Our convention for accessing agent package @SuppressWarnings("UnnecessarilyFullyQualified") @@ -18,15 +19,9 @@ public class ApplicationOpenTelemetry implements OpenTelemetry { public static final OpenTelemetry INSTANCE; static { - OpenTelemetry instance = null; - try { - // this class is defined in opentelemetry-api-1.10 - Class clazz = - Class.forName( - "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110"); - instance = (OpenTelemetry) clazz.getField("INSTANCE").get(null); - } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { - // fall through + OpenTelemetry instance = getOpenTelemetry127(); + if (instance == null) { + instance = getOpenTelemetry110(); } if (instance == null) { instance = new ApplicationOpenTelemetry(); @@ -56,4 +51,30 @@ public TracerProvider getTracerProvider() { public ContextPropagators getPropagators() { return applicationContextPropagators; } + + @Nullable + private static OpenTelemetry getOpenTelemetry127() { + try { + // this class is defined in opentelemetry-api-1.27 + Class clazz = + Class.forName( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.ApplicationOpenTelemetry127"); + return (OpenTelemetry) clazz.getField("INSTANCE").get(null); + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { + return null; + } + } + + @Nullable + private static OpenTelemetry getOpenTelemetry110() { + try { + // this class is defined in opentelemetry-api-1.10 + Class clazz = + Class.forName( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110"); + return (OpenTelemetry) clazz.getField("INSTANCE").get(null); + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException exception) { + return null; + } + } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/ApplicationOpenTelemetry110.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/ApplicationOpenTelemetry110.java index 8426fc2ac9d1..0c8d94ad8e42 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/ApplicationOpenTelemetry110.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.10/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_10/ApplicationOpenTelemetry110.java @@ -16,7 +16,7 @@ import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_4.trace.ApplicationTracerProvider14; import java.lang.reflect.InvocationTargetException; -public final class ApplicationOpenTelemetry110 implements OpenTelemetry { +public class ApplicationOpenTelemetry110 implements OpenTelemetry { // Accessed with reflection @SuppressWarnings("unused") @@ -27,7 +27,7 @@ public final class ApplicationOpenTelemetry110 implements OpenTelemetry { private final MeterProvider applicationMeterProvider; @SuppressWarnings("UnnecessarilyFullyQualified") - private ApplicationOpenTelemetry110() { + protected ApplicationOpenTelemetry110() { io.opentelemetry.api.OpenTelemetry agentOpenTelemetry = io.opentelemetry.api.GlobalOpenTelemetry.get(); applicationTracerProvider = diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts new file mode 100644 index 000000000000..fd89755d62b1 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/build.gradle.kts @@ -0,0 +1,11 @@ +plugins { + id("otel.javaagent-instrumentation") +} + +dependencies { + compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_27")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent")) +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java new file mode 100644 index 000000000000..b4b8c0010882 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/ApplicationOpenTelemetry127.java @@ -0,0 +1,32 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27; + +import application.io.opentelemetry.api.OpenTelemetry; +import application.io.opentelemetry.api.logs.LoggerProvider; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_10.ApplicationOpenTelemetry110; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLoggerProvider; + +public final class ApplicationOpenTelemetry127 extends ApplicationOpenTelemetry110 { + + // Accessed with reflection + @SuppressWarnings("unused") + public static final OpenTelemetry INSTANCE = new ApplicationOpenTelemetry127(); + + private final LoggerProvider applicationLoggerProvider; + + @SuppressWarnings("UnnecessarilyFullyQualified") + private ApplicationOpenTelemetry127() { + io.opentelemetry.api.OpenTelemetry agentOpenTelemetry = + io.opentelemetry.api.GlobalOpenTelemetry.get(); + applicationLoggerProvider = new ApplicationLoggerProvider(agentOpenTelemetry.getLogsBridge()); + } + + @Override + public LoggerProvider getLogsBridge() { + return applicationLoggerProvider; + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryApiLogsInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java similarity index 61% rename from instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryApiLogsInstrumentationModule.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java index d7553b977ea2..1949f24cd1ef 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryApiLogsInstrumentationModule.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryApiInstrumentationModule.java @@ -3,22 +3,23 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27; + +import static java.util.Collections.singletonList; import com.google.auto.service.AutoService; import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; -import java.util.Collections; import java.util.List; @AutoService(InstrumentationModule.class) -public class OpenTelemetryApiLogsInstrumentationModule extends InstrumentationModule { - public OpenTelemetryApiLogsInstrumentationModule() { - super("opentelemetry-api-logs"); +public class OpenTelemetryApiInstrumentationModule extends InstrumentationModule { + public OpenTelemetryApiInstrumentationModule() { + super("opentelemetry-api", "opentelemetry-api-1.27"); } @Override public List typeInstrumentations() { - return Collections.singletonList(new OpenTelemetryLogsInstrumentation()); + return singletonList(new OpenTelemetryInstrumentation()); } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryInstrumentation.java new file mode 100644 index 000000000000..aca23aada696 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/OpenTelemetryInstrumentation.java @@ -0,0 +1,39 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27; + +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.none; + +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +public class OpenTelemetryInstrumentation implements TypeInstrumentation { + + @Override + public ElementMatcher typeMatcher() { + return named("application.io.opentelemetry.api.GlobalOpenTelemetry"); + } + + @Override + public void transform(TypeTransformer transformer) { + transformer.applyAdviceToMethod( + none(), OpenTelemetryInstrumentation.class.getName() + "$InitAdvice"); + } + + @SuppressWarnings({"ReturnValueIgnored", "unused"}) + public static class InitAdvice { + @Advice.OnMethodEnter + public static void init() { + // the sole purpose of this advice is to ensure that ApplicationOpenTelemetry127 is recognized + // as helper class and injected into class loader + ApplicationOpenTelemetry127.class.getName(); + } + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLogRecordBuilder.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogRecordBuilder.java similarity index 99% rename from instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLogRecordBuilder.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogRecordBuilder.java index 8e41f6950399..1060663c7d9f 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLogRecordBuilder.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogRecordBuilder.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs; import application.io.opentelemetry.api.common.AttributeKey; import application.io.opentelemetry.api.logs.LogRecordBuilder; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLogger.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogger.java similarity index 97% rename from instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLogger.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogger.java index ee38e14dff47..7bfe4898ff0f 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLogger.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLogger.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs; import application.io.opentelemetry.api.logs.LogRecordBuilder; import application.io.opentelemetry.api.logs.Logger; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLoggerBuilder.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerBuilder.java similarity index 98% rename from instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLoggerBuilder.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerBuilder.java index 53b83ebce982..995697f2aa4a 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLoggerBuilder.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerBuilder.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs; import application.io.opentelemetry.api.logs.Logger; import application.io.opentelemetry.api.logs.LoggerBuilder; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLoggerProvider.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerProvider.java similarity index 75% rename from instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLoggerProvider.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerProvider.java index d5a822c3b7f1..192f53efbc95 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/ApplicationLoggerProvider.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/ApplicationLoggerProvider.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs; import application.io.opentelemetry.api.logs.LoggerBuilder; import application.io.opentelemetry.api.logs.LoggerProvider; @@ -12,12 +12,10 @@ @SuppressWarnings("UnnecessarilyFullyQualified") public class ApplicationLoggerProvider implements LoggerProvider { - public static final LoggerProvider INSTANCE = new ApplicationLoggerProvider(); - private final io.opentelemetry.api.logs.LoggerProvider agentLoggerProvider; - public ApplicationLoggerProvider() { - this.agentLoggerProvider = io.opentelemetry.api.logs.GlobalLoggerProvider.get(); + public ApplicationLoggerProvider(io.opentelemetry.api.logs.LoggerProvider agentLoggerProvider) { + this.agentLoggerProvider = agentLoggerProvider; } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/LogBridging.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/LogBridging.java similarity index 98% rename from instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/LogBridging.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/LogBridging.java index a6459dddd9d9..2e627b249fe3 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/bridge/LogBridging.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/logs/LogBridging.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs; import application.io.opentelemetry.api.logs.Severity; import java.util.EnumMap; diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/LoggerTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/LoggerTest.java similarity index 96% rename from instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/LoggerTest.java rename to instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/LoggerTest.java index 76b70af3582f..3149502caec1 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/LoggerTest.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.27/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_27/LoggerTest.java @@ -3,14 +3,14 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs; +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.common.Attributes; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.api.logs.Logger; import io.opentelemetry.api.logs.Severity; import io.opentelemetry.api.trace.Span; @@ -39,7 +39,8 @@ class LoggerTest { void setupLogger(TestInfo test) { instrumentationName = "test-" + test.getDisplayName(); logger = - GlobalLoggerProvider.get() + GlobalOpenTelemetry.get() + .getLogsBridge() .loggerBuilder(instrumentationName) .setInstrumentationVersion("1.2.3") .setSchemaUrl("http://schema.org") diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/build.gradle.kts deleted file mode 100644 index a6cf2d89e357..000000000000 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/build.gradle.kts +++ /dev/null @@ -1,27 +0,0 @@ -plugins { - id("otel.javaagent-instrumentation") -} - -dependencies { - // this instrumentation needs to be able to reference both the OpenTelemetry API - // that is shaded in the bootstrap class loader (for sending telemetry to the agent), - // and the OpenTelemetry API that the user brings (in order to capture that telemetry) - // - // since (all) instrumentation already uses OpenTelemetry API for sending telemetry to the agent, - // this instrumentation uses a "temporarily shaded" OpenTelemetry API to represent the - // OpenTelemetry API that the user brings - // - // then later, after the OpenTelemetry API in the bootstrap class loader is shaded, - // the "temporarily shaded" OpenTelemetry API is unshaded, so that it will apply to the - // OpenTelemetry API that the user brings - // - // so in the code "application.io.opentelemetry.*" refers to the (unshaded) OpenTelemetry API that - // the application brings (as those references will be translated during the build to remove the - // "application." prefix) - // - // and in the code "io.opentelemetry.*" refers to the (shaded) OpenTelemetry API that is used by - // the agent (as those references will later be shaded) - compileOnly("io.opentelemetry:opentelemetry-api") - compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "shadow")) - implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) -} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryLogsInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryLogsInstrumentation.java deleted file mode 100644 index baac74a958ff..000000000000 --- a/instrumentation/opentelemetry-api/opentelemetry-api-logs-1.23/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/logs/OpenTelemetryLogsInstrumentation.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs; - -import static net.bytebuddy.matcher.ElementMatchers.isMethod; -import static net.bytebuddy.matcher.ElementMatchers.isStatic; -import static net.bytebuddy.matcher.ElementMatchers.named; -import static net.bytebuddy.matcher.ElementMatchers.takesArguments; - -import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; -import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; -import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.logs.bridge.ApplicationLoggerProvider; -import net.bytebuddy.asm.Advice; -import net.bytebuddy.description.type.TypeDescription; -import net.bytebuddy.matcher.ElementMatcher; - -// Our convention for accessing agent package -@SuppressWarnings("UnnecessarilyFullyQualified") -public class OpenTelemetryLogsInstrumentation implements TypeInstrumentation { - - @Override - public ElementMatcher typeMatcher() { - return named("application.io.opentelemetry.api.logs.GlobalLoggerProvider"); - } - - @Override - public void transform(TypeTransformer transformer) { - transformer.applyAdviceToMethod( - isMethod().and(isStatic()).and(named("get")).and(takesArguments(0)), - OpenTelemetryLogsInstrumentation.class.getName() + "$GetGlobalLogsAdvice"); - } - - @SuppressWarnings("unused") - public static class GetGlobalLogsAdvice { - - @Advice.OnMethodEnter(skipOn = Advice.OnDefaultValue.class) - public static Object onEnter() { - return null; - } - - @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) - public static void methodExit( - @Advice.Return(readOnly = false) - application.io.opentelemetry.api.logs.LoggerProvider loggerProvider) { - loggerProvider = ApplicationLoggerProvider.INSTANCE; - } - } -} diff --git a/instrumentation/pulsar/pulsar-2.8/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/PulsarClientTest.groovy b/instrumentation/pulsar/pulsar-2.8/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/PulsarClientTest.groovy index bcd170ad2c11..d81238353cff 100644 --- a/instrumentation/pulsar/pulsar-2.8/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/PulsarClientTest.groovy +++ b/instrumentation/pulsar/pulsar-2.8/javaagent/src/test/groovy/io/opentelemetry/javaagent/instrumentation/pulsar/v2_8/PulsarClientTest.groovy @@ -9,7 +9,14 @@ import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.instrumentation.test.asserts.TraceAssert import io.opentelemetry.semconv.trace.attributes.SemanticAttributes import org.apache.pulsar.client.admin.PulsarAdmin -import org.apache.pulsar.client.api.* +import org.apache.pulsar.client.api.Consumer +import org.apache.pulsar.client.api.Message +import org.apache.pulsar.client.api.MessageListener +import org.apache.pulsar.client.api.Messages +import org.apache.pulsar.client.api.Producer +import org.apache.pulsar.client.api.PulsarClient +import org.apache.pulsar.client.api.Schema +import org.apache.pulsar.client.api.SubscriptionInitialPosition import org.slf4j.Logger import org.slf4j.LoggerFactory import org.testcontainers.containers.PulsarContainer @@ -23,13 +30,15 @@ import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit import java.util.regex.Pattern -import static io.opentelemetry.api.trace.SpanKind.* +import static io.opentelemetry.api.trace.SpanKind.CONSUMER +import static io.opentelemetry.api.trace.SpanKind.INTERNAL +import static io.opentelemetry.api.trace.SpanKind.PRODUCER class PulsarClientTest extends AgentInstrumentationSpecification { private static final Logger logger = LoggerFactory.getLogger(PulsarClientTest) private static final DockerImageName DEFAULT_IMAGE_NAME = - DockerImageName.parse("apachepulsar/pulsar:2.8.0") + DockerImageName.parse("apachepulsar/pulsar:2.8.0") @Shared private PulsarContainer pulsar @@ -52,9 +61,9 @@ class PulsarClientTest extends AgentInstrumentationSpecification { @Override def setupSpec() { pulsar = new PulsarContainer(DEFAULT_IMAGE_NAME) - .withEnv("PULSAR_MEM", "-Xmx128m") - .withLogConsumer(new Slf4jLogConsumer(logger)) - .withStartupTimeout(Duration.ofMinutes(2)) + .withEnv("PULSAR_MEM", "-Xmx128m") + .withLogConsumer(new Slf4jLogConsumer(logger)) + .withStartupTimeout(Duration.ofMinutes(2)) pulsar.start() brokerHost = pulsar.host @@ -78,8 +87,8 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def topic = "persistent://public/default/testSendNonPartitionedTopic" admin.topics().createNonPartitionedTopic(topic) producer = - client.newProducer(Schema.STRING).topic(topic) - .enableBatching(false).create() + client.newProducer(Schema.STRING).topic(topic) + .enableBatching(false).create() when: String msg = "test" @@ -106,22 +115,22 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def latch = new CountDownLatch(1) admin.topics().createNonPartitionedTopic(topic) consumer = client.newConsumer(Schema.STRING) - .subscriptionName("test_sub") - .topic(topic) - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .messageListener(new MessageListener() { - @Override - void received(Consumer consumer, Message msg) { - consumer.acknowledge(msg) - latch.countDown() - } - }) - .subscribe() + .subscriptionName("test_sub") + .topic(topic) + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .messageListener(new MessageListener() { + @Override + void received(Consumer consumer, Message msg) { + consumer.acknowledge(msg) + latch.countDown() + } + }) + .subscribe() producer = client.newProducer(Schema.STRING) - .topic(topic) - .enableBatching(false) - .create() + .topic(topic) + .enableBatching(false) + .create() when: def msg = "test" @@ -151,15 +160,15 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def topic = "persistent://public/default/testConsumeNonPartitionedTopicCallReceive" admin.topics().createNonPartitionedTopic(topic) consumer = client.newConsumer(Schema.STRING) - .subscriptionName("test_sub") - .topic(topic) - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .subscribe() + .subscriptionName("test_sub") + .topic(topic) + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .subscribe() producer = client.newProducer(Schema.STRING) - .topic(topic) - .enableBatching(false) - .create() + .topic(topic) + .enableBatching(false) + .create() when: def msg = "test" @@ -189,15 +198,15 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def topic = "persistent://public/default/testConsumeNonPartitionedTopicCallReceiveAsync" admin.topics().createNonPartitionedTopic(topic) consumer = client.newConsumer(Schema.STRING) - .subscriptionName("test_sub") - .topic(topic) - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .subscribe() + .subscriptionName("test_sub") + .topic(topic) + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .subscribe() producer = client.newProducer(Schema.STRING) - .topic(topic) - .enableBatching(false) - .create() + .topic(topic) + .enableBatching(false) + .create() when: CompletableFuture> result = consumer.receiveAsync().whenComplete { receivedMsg, throwable -> @@ -239,15 +248,15 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def topic = "persistent://public/default/testConsumeNonPartitionedTopicCallReceiveWithTimeout" admin.topics().createNonPartitionedTopic(topic) consumer = client.newConsumer(Schema.STRING) - .subscriptionName("test_sub") - .topic(topic) - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .subscribe() + .subscriptionName("test_sub") + .topic(topic) + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .subscribe() producer = client.newProducer(Schema.STRING) - .topic(topic) - .enableBatching(false) - .create() + .topic(topic) + .enableBatching(false) + .create() when: def msg = "test" @@ -277,15 +286,15 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def topic = "persistent://public/default/testConsumeNonPartitionedTopicCallBatchReceive" admin.topics().createNonPartitionedTopic(topic) consumer = client.newConsumer(Schema.STRING) - .subscriptionName("test_sub") - .topic(topic) - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .subscribe() + .subscriptionName("test_sub") + .topic(topic) + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .subscribe() producer = client.newProducer(Schema.STRING) - .topic(topic) - .enableBatching(false) - .create() + .topic(topic) + .enableBatching(false) + .create() when: def msg = "test" @@ -326,15 +335,15 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def topic = "persistent://public/default/testConsumeNonPartitionedTopicCallBatchReceiveAsync" admin.topics().createNonPartitionedTopic(topic) consumer = client.newConsumer(Schema.STRING) - .subscriptionName("test_sub") - .topic(topic) - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .subscribe() + .subscriptionName("test_sub") + .topic(topic) + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .subscribe() producer = client.newProducer(Schema.STRING) - .topic(topic) - .enableBatching(false) - .create() + .topic(topic) + .enableBatching(false) + .create() when: def msg = "test" @@ -387,22 +396,22 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def latch = new CountDownLatch(1) admin.topics().createNonPartitionedTopic(topic) consumer = client.newConsumer(Schema.STRING) - .subscriptionName("test_sub") - .topic(topic) - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .messageListener(new MessageListener() { - @Override - void received(Consumer consumer, Message msg) { - consumer.acknowledge(msg) - latch.countDown() - } - }) - .subscribe() + .subscriptionName("test_sub") + .topic(topic) + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .messageListener(new MessageListener() { + @Override + void received(Consumer consumer, Message msg) { + consumer.acknowledge(msg) + latch.countDown() + } + }) + .subscribe() producer = client.newProducer(Schema.STRING) - .topic(topic) - .enableBatching(false) - .create() + .topic(topic) + .enableBatching(false) + .create() when: def msg = "test" @@ -432,8 +441,8 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def topic = "persistent://public/default/testSendPartitionedTopic" admin.topics().createPartitionedTopic(topic, 2) producer = - client.newProducer(Schema.STRING).topic(topic) - .enableBatching(false).create() + client.newProducer(Schema.STRING).topic(topic) + .enableBatching(false).create() when: String msg = "test" @@ -461,22 +470,22 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def latch = new CountDownLatch(1) consumer = client.newConsumer(Schema.STRING) - .subscriptionName("test_sub") - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .topic(topic) - .messageListener(new MessageListener() { - @Override - void received(Consumer consumer, Message msg) { - consumer.acknowledge(msg) - latch.countDown() - } - }) - .subscribe() + .subscriptionName("test_sub") + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .topic(topic) + .messageListener(new MessageListener() { + @Override + void received(Consumer consumer, Message msg) { + consumer.acknowledge(msg) + latch.countDown() + } + }) + .subscribe() producer = client.newProducer(Schema.STRING) - .topic(topic) - .enableBatching(false) - .create() + .topic(topic) + .enableBatching(false) + .create() when: def msg = "test" @@ -495,7 +504,7 @@ class PulsarClientTest extends AgentInstrumentationSpecification { hasNoParent() } producerSpan(it, 1, span(0), topic, ~/${topic}-partition-.*send/, { it.startsWith(topic) }, msgId) - receiveSpan(it, 2, span(1), topic, ~/${topic}-partition-.*receive/, { it.startsWith(topic) }, msgId) + receiveSpan(it, 2, span(1), topic, ~/${topic}-partition-.*receive/, { it.startsWith(topic) }, msgId) processSpan(it, 3, span(2), topic, ~/${topic}-partition-.*process/, { it.startsWith(topic) }, msgId) } } @@ -510,13 +519,13 @@ class PulsarClientTest extends AgentInstrumentationSpecification { def latch = new CountDownLatch(2) producer = client.newProducer(Schema.STRING) - .topic(topic1) - .enableBatching(false) - .create() + .topic(topic1) + .enableBatching(false) + .create() producer2 = client.newProducer(Schema.STRING) - .topic(topic2) - .enableBatching(false) - .create() + .topic(topic2) + .enableBatching(false) + .create() when: runWithSpan("parent1") { @@ -527,17 +536,17 @@ class PulsarClientTest extends AgentInstrumentationSpecification { } consumer = client.newConsumer(Schema.STRING) - .topic(topic2, topic1) - .subscriptionName("test_sub") - .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) - .messageListener(new MessageListener() { - @Override - void received(Consumer consumer, Message msg) { - consumer.acknowledge(msg) - latch.countDown() - } - }) - .subscribe() + .topic(topic2, topic1) + .subscriptionName("test_sub") + .subscriptionInitialPosition(SubscriptionInitialPosition.Earliest) + .messageListener(new MessageListener() { + @Override + void received(Consumer consumer, Message msg) { + consumer.acknowledge(msg) + latch.countDown() + } + }) + .subscribe() latch.await(1, TimeUnit.MINUTES) diff --git a/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMqTest.groovy b/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMqTest.groovy index c3b3ec1149f4..9245f875a976 100644 --- a/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMqTest.groovy +++ b/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/RabbitMqTest.groovy @@ -3,8 +3,14 @@ * SPDX-License-Identifier: Apache-2.0 */ - -import com.rabbitmq.client.* +import com.rabbitmq.client.AMQP +import com.rabbitmq.client.Channel +import com.rabbitmq.client.Connection +import com.rabbitmq.client.Consumer +import com.rabbitmq.client.DefaultConsumer +import com.rabbitmq.client.Envelope +import com.rabbitmq.client.GetResponse +import com.rabbitmq.client.ShutdownSignalException import io.opentelemetry.api.common.AttributeKey import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.instrumentation.test.asserts.TraceAssert @@ -20,7 +26,9 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit -import static io.opentelemetry.api.trace.SpanKind.* +import static io.opentelemetry.api.trace.SpanKind.CLIENT +import static io.opentelemetry.api.trace.SpanKind.CONSUMER +import static io.opentelemetry.api.trace.SpanKind.PRODUCER import static io.opentelemetry.api.trace.StatusCode.ERROR class RabbitMqTest extends AgentInstrumentationSpecification implements WithRabbitMqTrait { @@ -135,8 +143,8 @@ class RabbitMqTest extends AgentInstrumentationSpecification implements WithRabb setup: channel.exchangeDeclare(exchangeName, "direct", false) String queueName = (messageCount % 2 == 0) ? - channel.queueDeclare().getQueue() : - channel.queueDeclare("some-queue", false, true, true, null).getQueue() + channel.queueDeclare().getQueue() : + channel.queueDeclare("some-queue", false, true, true, null).getQueue() channel.queueBind(queueName, exchangeName, "") def deliveries = [] @@ -153,8 +161,8 @@ class RabbitMqTest extends AgentInstrumentationSpecification implements WithRabb (1..messageCount).each { if (setTimestamp) { channel.basicPublish(exchangeName, "", - new AMQP.BasicProperties.Builder().timestamp(new Date()).build(), - "msg $it".getBytes()) + new AMQP.BasicProperties.Builder().timestamp(new Date()).build(), + "msg $it".getBytes()) } else { channel.basicPublish(exchangeName, "", null, "msg $it".getBytes()) } @@ -353,18 +361,18 @@ class RabbitMqTest extends AgentInstrumentationSpecification implements WithRabb } def rabbitSpan( - TraceAssert trace, - int index, - String exchange, - String routingKey, - String operation, - String resource, - SpanData parentSpan = null, - SpanData linkSpan = null, - Throwable exception = null, - String errorMsg = null, - boolean expectTimestamp = false, - boolean testHeaders = false + TraceAssert trace, + int index, + String exchange, + String routingKey, + String operation, + String resource, + SpanData parentSpan = null, + SpanData linkSpan = null, + Throwable exception = null, + String errorMsg = null, + boolean expectTimestamp = false, + boolean testHeaders = false ) { def spanName = resource diff --git a/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/ReactorRabbitMqTest.groovy b/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/ReactorRabbitMqTest.groovy index 244b1ba6311b..6b4abf84ea99 100644 --- a/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/ReactorRabbitMqTest.groovy +++ b/instrumentation/rabbitmq-2.7/javaagent/src/test/groovy/ReactorRabbitMqTest.groovy @@ -27,7 +27,7 @@ class ReactorRabbitMqTest extends AgentInstrumentationSpecification implements W when: sender.declareExchange(ExchangeSpecification.exchange("testExchange")) - .block() + .block() then: noExceptionThrown() diff --git a/instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/testing/src/main/groovy/io/opentelemetry/instrumentation/rocketmqclient/v4_8/AbstractRocketMqClientTest.groovy b/instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/testing/src/main/groovy/io/opentelemetry/instrumentation/rocketmqclient/v4_8/AbstractRocketMqClientTest.groovy index db8cd52558a1..b34fd6551dc1 100644 --- a/instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/testing/src/main/groovy/io/opentelemetry/instrumentation/rocketmqclient/v4_8/AbstractRocketMqClientTest.groovy +++ b/instrumentation/rocketmq/rocketmq-client/rocketmq-client-4.8/testing/src/main/groovy/io/opentelemetry/instrumentation/rocketmqclient/v4_8/AbstractRocketMqClientTest.groovy @@ -21,7 +21,9 @@ import spock.lang.Unroll import java.util.concurrent.CompletableFuture import java.util.concurrent.TimeUnit -import static io.opentelemetry.api.trace.SpanKind.* +import static io.opentelemetry.api.trace.SpanKind.CONSUMER +import static io.opentelemetry.api.trace.SpanKind.INTERNAL +import static io.opentelemetry.api.trace.SpanKind.PRODUCER //TODO add tests for propagationEnabled flag @Unroll diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java index 04700b4dfbe7..369a9fd22607 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/main/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfiguration.java @@ -6,7 +6,6 @@ package io.opentelemetry.instrumentation.spring.autoconfigure; import io.opentelemetry.api.OpenTelemetry; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.api.trace.TracerProvider; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.instrumentation.spring.autoconfigure.resources.SpringResourceConfigProperties; @@ -83,16 +82,14 @@ public SdkLoggerProvider sdkLoggerProvider( SdkLoggerProviderBuilder loggerProviderBuilder = SdkLoggerProvider.builder(); loggerProviderBuilder.setResource(otelResource); - loggerExportersProvider.getIfAvailable(Collections::emptyList).stream() + loggerExportersProvider + .getIfAvailable(Collections::emptyList) .forEach( loggerExporter -> loggerProviderBuilder.addLogRecordProcessor( BatchLogRecordProcessor.builder(loggerExporter).build())); - SdkLoggerProvider loggerProvider = loggerProviderBuilder.build(); - GlobalLoggerProvider.set(loggerProvider); - - return loggerProvider; + return loggerProviderBuilder.build(); } @Bean diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfigurationTest.java index e8a4b1546276..67312508ced8 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/OpenTelemetryAutoConfigurationTest.java @@ -10,14 +10,12 @@ import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.spring.autoconfigure.resources.OtelResourceAutoConfiguration; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.logs.SdkLoggerProvider; import io.opentelemetry.sdk.metrics.SdkMeterProvider; import io.opentelemetry.sdk.resources.Resource; import io.opentelemetry.sdk.trace.SdkTracerProvider; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -37,11 +35,6 @@ public OpenTelemetry customOpenTelemetry() { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner(); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName( "when Application Context contains OpenTelemetry bean should NOT initialize openTelemetry") diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/TraceAspectAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/TraceAspectAutoConfigurationTest.java index 6bd10650947b..3dc05203bf0a 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/TraceAspectAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/aspects/TraceAspectAutoConfigurationTest.java @@ -7,9 +7,7 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -24,11 +22,6 @@ public class TraceAspectAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, TraceAspectAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when aspects are ENABLED should initialize WithSpanAspect bean") void aspectsEnabled() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java index 78f5bfc231e7..b1d0bf4492d5 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/jaeger/JaegerSpanExporterAutoConfigurationTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -25,11 +23,6 @@ class JaegerSpanExporterAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, JaegerSpanExporterAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when exporters are ENABLED should initialize JaegerGrpcSpanExporter bean") void exportersEnabled() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java index 548d341ba15f..5b1e8355e1ec 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingMetricExporterAutoConfigurationTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.exporter.logging.LoggingMetricExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -24,11 +22,6 @@ class LoggingMetricExporterAutoConfigurationTest { OpenTelemetryAutoConfiguration.class, LoggingMetricExporterAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test void loggingEnabled() { runner diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java index b2aab55f94db..34abb3200ec2 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/logging/LoggingSpanExporterAutoConfigurationTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.exporter.logging.LoggingSpanExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -26,11 +24,6 @@ class LoggingSpanExporterAutoConfigurationTest { OpenTelemetryAutoConfiguration.class, LoggingSpanExporterAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when exporters are ENABLED should initialize LoggingSpanExporter bean") void loggingEnabled() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpLogExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpLogExporterAutoConfigurationTest.java index 354c3fc686be..540eac6ee217 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpLogExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpLogExporterAutoConfigurationTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -23,11 +21,6 @@ class OtlpLogExporterAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, OtlpLoggerExporterAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test void otlpEnabled() { runner diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpMetricExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpMetricExporterAutoConfigurationTest.java index 219572efcd0b..67b2365579f0 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpMetricExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpMetricExporterAutoConfigurationTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -23,11 +21,6 @@ class OtlpMetricExporterAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, OtlpMetricExporterAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test void otlpEnabled() { runner diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpSpanExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpSpanExporterAutoConfigurationTest.java index d7e6d1829be2..d606aae3adaa 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpSpanExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/otlp/OtlpSpanExporterAutoConfigurationTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -25,11 +23,6 @@ class OtlpSpanExporterAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, OtlpSpanExporterAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when exporters are ENABLED should initialize OtlpGrpcSpanExporter bean") void otlpEnabled() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java index 3729ad53f04e..7e6aa89a4515 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/exporters/zipkin/ZipkinSpanExporterAutoConfigurationTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -25,11 +23,6 @@ class ZipkinSpanExporterAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, ZipkinSpanExporterAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when exporters are ENABLED should initialize ZipkinSpanExporter bean") void exportersEnabled() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/resttemplate/RestTemplateAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/resttemplate/RestTemplateAutoConfigurationTest.java index d6ca636f7db3..84224f625238 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/resttemplate/RestTemplateAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/resttemplate/RestTemplateAutoConfigurationTest.java @@ -7,9 +7,7 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -24,11 +22,6 @@ class RestTemplateAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, RestTemplateAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when httpclients are ENABLED should initialize RestTemplateInterceptor bean") void httpClientsEnabled() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/webclient/WebClientAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/webclient/WebClientAutoConfigurationTest.java index aaf49f8f33f1..ea90e219014c 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/webclient/WebClientAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/httpclients/webclient/WebClientAutoConfigurationTest.java @@ -7,9 +7,7 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -24,11 +22,6 @@ class WebClientAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, WebClientAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when httpclients are ENABLED should initialize WebClientBeanPostProcessor bean") void httpClientsEnabled() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/metrics/MicrometerShimAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/metrics/MicrometerShimAutoConfigurationTest.java index 18d40da93bc4..7e66044cd0db 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/metrics/MicrometerShimAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/metrics/MicrometerShimAutoConfigurationTest.java @@ -8,10 +8,8 @@ import static org.assertj.core.api.Assertions.assertThat; import io.micrometer.core.instrument.MeterRegistry; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.micrometer.v1_5.OpenTelemetryMeterRegistry; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -25,11 +23,6 @@ class MicrometerShimAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, MicrometerShimAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test void metricsEnabled() { runner diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfigurationTest.java index 00dd4c71f80f..a20162cec993 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationAutoConfigurationTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.context.propagation.TextMapPropagator; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -24,11 +22,6 @@ class PropagationAutoConfigurationTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, PropagationAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when propagation is ENABLED should initialize PropagationAutoConfiguration bean") void shouldBeConfigured() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationPropertiesTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationPropertiesTest.java index f835cb68be5b..6c746b0c92be 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationPropertiesTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/propagators/PropagationPropertiesTest.java @@ -7,10 +7,8 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; import java.util.Arrays; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -24,11 +22,6 @@ public class PropagationPropertiesTest { AutoConfigurations.of( OpenTelemetryAutoConfiguration.class, PropagationAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when propagation is SET should set PropagationProperties with given propagators") void hasType() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourceAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourceAutoConfigurationTest.java index 0ab180d6faec..17506fffe3ed 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourceAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourceAutoConfigurationTest.java @@ -7,9 +7,7 @@ import static org.assertj.core.api.Assertions.assertThat; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -22,11 +20,6 @@ public class OtelResourceAutoConfigurationTest { AutoConfigurations.of( OtelResourceAutoConfiguration.class, OpenTelemetryAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName( "when otel.springboot.resource.enabled is set to true configuration should be initialized") diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourcePropertiesTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourcePropertiesTest.java index ec36d97b7a73..2b882b5cf7ee 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourcePropertiesTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/OtelResourcePropertiesTest.java @@ -8,8 +8,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.entry; -import io.opentelemetry.api.logs.GlobalLoggerProvider; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; @@ -21,11 +19,6 @@ public class OtelResourcePropertiesTest { .withPropertyValues("otel.springboot.resource.enabled=true") .withConfiguration(AutoConfigurations.of(OtelResourceAutoConfiguration.class)); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when attributes are SET should set OtelResourceProperties with given attributes") void hasAttributes() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/SpringResourceConfigPropertiesTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/SpringResourceConfigPropertiesTest.java index 96f4209c599a..93756ae1c4ed 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/SpringResourceConfigPropertiesTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/resources/SpringResourceConfigPropertiesTest.java @@ -8,8 +8,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.entry; -import io.opentelemetry.api.logs.GlobalLoggerProvider; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.runner.ApplicationContextRunner; @@ -19,11 +17,6 @@ class SpringResourceConfigPropertiesTest { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner(); - @BeforeEach - void resetGlobalLoggerProvider() { - GlobalLoggerProvider.resetForTest(); - } - @Test @DisplayName("when map is set in properties in a row it should be available in config") void shouldInitializeAttributesByMapInArow() { diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationSpring6Test.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationSpring6Test.java index 26f8f5ea5aba..5383154c80c1 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationSpring6Test.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationSpring6Test.java @@ -8,7 +8,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assumptions.assumeTrue; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; import jakarta.servlet.Filter; import org.junit.jupiter.api.BeforeEach; @@ -29,7 +28,6 @@ class WebMvcFilterAutoConfigurationSpring6Test { @BeforeEach void setUp() { assumeTrue(Boolean.getBoolean("testLatestDeps")); - GlobalLoggerProvider.resetForTest(); } @Test diff --git a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationTest.java b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationTest.java index 20420df04f19..6c82ae182315 100644 --- a/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationTest.java +++ b/instrumentation/spring/spring-boot-autoconfigure/src/test/java/io/opentelemetry/instrumentation/spring/autoconfigure/webmvc/WebMvcFilterAutoConfigurationTest.java @@ -8,7 +8,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assumptions.assumeFalse; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.instrumentation.spring.autoconfigure.OpenTelemetryAutoConfiguration; import javax.servlet.Filter; import org.junit.jupiter.api.BeforeEach; @@ -28,7 +27,6 @@ class WebMvcFilterAutoConfigurationTest { @BeforeEach void setUp() { assumeFalse(Boolean.getBoolean("testLatestDeps")); - GlobalLoggerProvider.resetForTest(); } @Test diff --git a/instrumentation/spring/spring-integration-4.1/javaagent/src/test/groovy/SpringIntegrationAndRabbitTest.groovy b/instrumentation/spring/spring-integration-4.1/javaagent/src/test/groovy/SpringIntegrationAndRabbitTest.groovy index eb9581213840..4df661a8b759 100644 --- a/instrumentation/spring/spring-integration-4.1/javaagent/src/test/groovy/SpringIntegrationAndRabbitTest.groovy +++ b/instrumentation/spring/spring-integration-4.1/javaagent/src/test/groovy/SpringIntegrationAndRabbitTest.groovy @@ -3,11 +3,12 @@ * SPDX-License-Identifier: Apache-2.0 */ - import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.semconv.trace.attributes.SemanticAttributes -import static io.opentelemetry.api.trace.SpanKind.* +import static io.opentelemetry.api.trace.SpanKind.CLIENT +import static io.opentelemetry.api.trace.SpanKind.CONSUMER +import static io.opentelemetry.api.trace.SpanKind.PRODUCER class SpringIntegrationAndRabbitTest extends AgentInstrumentationSpecification implements WithRabbitProducerConsumerTrait { def setupSpec() { diff --git a/instrumentation/spring/spring-jms/spring-jms-2.0/javaagent/src/test/groovy/SpringTemplateTest.groovy b/instrumentation/spring/spring-jms/spring-jms-2.0/javaagent/src/test/groovy/SpringTemplateTest.groovy index dfaa4bf9945d..ddf49278d9f7 100644 --- a/instrumentation/spring/spring-jms/spring-jms-2.0/javaagent/src/test/groovy/SpringTemplateTest.groovy +++ b/instrumentation/spring/spring-jms/spring-jms-2.0/javaagent/src/test/groovy/SpringTemplateTest.groovy @@ -3,7 +3,6 @@ * SPDX-License-Identifier: Apache-2.0 */ - import com.google.common.io.Files import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import org.hornetq.api.core.TransportConfiguration @@ -21,7 +20,11 @@ import org.springframework.jms.core.JmsTemplate import org.springframework.jms.core.MessagePostProcessor import spock.lang.Shared -import javax.jms.* +import javax.jms.Connection +import javax.jms.JMSException +import javax.jms.Message +import javax.jms.Session +import javax.jms.TextMessage import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicReference @@ -66,7 +69,7 @@ class SpringTemplateTest extends AgentInstrumentationSpecification { serverLocator.close() def connectionFactory = HornetQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, - new TransportConfiguration(InVMConnectorFactory.name)) + new TransportConfiguration(InVMConnectorFactory.name)) connection = connectionFactory.createConnection() connection.start() @@ -125,10 +128,10 @@ class SpringTemplateTest extends AgentInstrumentationSpecification { receivedMessage.text == "responded!" assertTraces(4) { traces.sort(orderByRootSpanName( - "$destinationName receive", - "$destinationName send", - "(temporary) receive", - "(temporary) send")) + "$destinationName receive", + "$destinationName send", + "(temporary) receive", + "(temporary) send")) trace(0, 1) { consumerSpan(it, 0, destinationName, msgId.get(), null, "receive") diff --git a/instrumentation/spring/spring-rabbit-1.0/javaagent/src/test/groovy/ContextPropagationTest.groovy b/instrumentation/spring/spring-rabbit-1.0/javaagent/src/test/groovy/ContextPropagationTest.groovy index b9d30e24ba53..1cd7eaf4a046 100644 --- a/instrumentation/spring/spring-rabbit-1.0/javaagent/src/test/groovy/ContextPropagationTest.groovy +++ b/instrumentation/spring/spring-rabbit-1.0/javaagent/src/test/groovy/ContextPropagationTest.groovy @@ -3,7 +3,6 @@ * SPDX-License-Identifier: Apache-2.0 */ - import com.rabbitmq.client.ConnectionFactory import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification import io.opentelemetry.instrumentation.testing.GlobalTraceUtil @@ -26,7 +25,9 @@ import spock.lang.Unroll import java.time.Duration -import static io.opentelemetry.api.trace.SpanKind.* +import static io.opentelemetry.api.trace.SpanKind.CLIENT +import static io.opentelemetry.api.trace.SpanKind.CONSUMER +import static io.opentelemetry.api.trace.SpanKind.PRODUCER class ContextPropagationTest extends AgentInstrumentationSpecification { @@ -39,23 +40,23 @@ class ContextPropagationTest extends AgentInstrumentationSpecification { def setupSpec() { rabbitMqContainer = new GenericContainer('rabbitmq:latest') - .withExposedPorts(5672) - .waitingFor(Wait.forLogMessage(".*Server startup complete.*", 1)) - .withStartupTimeout(Duration.ofMinutes(2)) + .withExposedPorts(5672) + .waitingFor(Wait.forLogMessage(".*Server startup complete.*", 1)) + .withStartupTimeout(Duration.ofMinutes(2)) rabbitMqContainer.start() def app = new SpringApplication(ConsumerConfig) app.setDefaultProperties([ - "spring.jmx.enabled" : false, - "spring.main.web-application-type": "none", - "spring.rabbitmq.host" : rabbitMqContainer.host, - "spring.rabbitmq.port" : rabbitMqContainer.getMappedPort(5672), + "spring.jmx.enabled" : false, + "spring.main.web-application-type": "none", + "spring.rabbitmq.host" : rabbitMqContainer.host, + "spring.rabbitmq.port" : rabbitMqContainer.getMappedPort(5672), ]) applicationContext = app.run() connectionFactory = new ConnectionFactory( - host: rabbitMqContainer.host, - port: rabbitMqContainer.getMappedPort(5672) + host: rabbitMqContainer.host, + port: rabbitMqContainer.getMappedPort(5672) ) } @@ -74,16 +75,16 @@ class ContextPropagationTest extends AgentInstrumentationSpecification { runWithSpan("parent") { if (testHeaders) { applicationContext.getBean(AmqpTemplate) - .convertAndSend(ConsumerConfig.TEST_QUEUE, (Object) "test", new MessagePostProcessor() { - @Override - Message postProcessMessage(Message message) throws AmqpException { - message.getMessageProperties().setHeader("test-message-header", "test") - return message - } - }) + .convertAndSend(ConsumerConfig.TEST_QUEUE, (Object) "test", new MessagePostProcessor() { + @Override + Message postProcessMessage(Message message) throws AmqpException { + message.getMessageProperties().setHeader("test-message-header", "test") + return message + } + }) } else { applicationContext.getBean(AmqpTemplate) - .convertAndSend(ConsumerConfig.TEST_QUEUE, "test") + .convertAndSend(ConsumerConfig.TEST_QUEUE, "test") } } diff --git a/javaagent-tooling/build.gradle.kts b/javaagent-tooling/build.gradle.kts index 2f3e19ee9f54..b531c48cf926 100644 --- a/javaagent-tooling/build.gradle.kts +++ b/javaagent-tooling/build.gradle.kts @@ -17,6 +17,7 @@ dependencies { implementation(project(":muzzle")) implementation("io.opentelemetry:opentelemetry-api") + implementation("io.opentelemetry:opentelemetry-api-events") implementation("io.opentelemetry:opentelemetry-sdk") implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") implementation("io.opentelemetry:opentelemetry-extension-kotlin") diff --git a/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/OpenTelemetryInstallerTest.groovy b/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/OpenTelemetryInstallerTest.groovy index abd588a679b2..dc3533d55e92 100755 --- a/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/OpenTelemetryInstallerTest.groovy +++ b/javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/OpenTelemetryInstallerTest.groovy @@ -8,20 +8,17 @@ package io.opentelemetry.javaagent.tooling import io.opentelemetry.api.GlobalOpenTelemetry import io.opentelemetry.api.OpenTelemetry import io.opentelemetry.api.events.GlobalEventEmitterProvider -import io.opentelemetry.api.logs.GlobalLoggerProvider import spock.lang.Specification class OpenTelemetryInstallerTest extends Specification { void setup() { GlobalOpenTelemetry.resetForTest() - GlobalLoggerProvider.resetForTest() GlobalEventEmitterProvider.resetForTest() } void cleanup() { GlobalOpenTelemetry.resetForTest() - GlobalLoggerProvider.resetForTest() GlobalEventEmitterProvider.resetForTest() } diff --git a/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/config/ConfigurationPropertiesSupplierTest.java b/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/config/ConfigurationPropertiesSupplierTest.java index 8ae6af0cc5e9..5bc5af79faec 100644 --- a/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/config/ConfigurationPropertiesSupplierTest.java +++ b/javaagent-tooling/src/test/java/io/opentelemetry/javaagent/tooling/config/ConfigurationPropertiesSupplierTest.java @@ -11,7 +11,6 @@ import io.opentelemetry.api.GlobalOpenTelemetry; import io.opentelemetry.api.events.GlobalEventEmitterProvider; -import io.opentelemetry.api.logs.GlobalLoggerProvider; import io.opentelemetry.javaagent.tooling.OpenTelemetryInstaller; import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer; @@ -33,7 +32,6 @@ class ConfigurationPropertiesSupplierTest { @AfterAll static void cleanUp() { GlobalOpenTelemetry.resetForTest(); - GlobalLoggerProvider.resetForTest(); GlobalEventEmitterProvider.resetForTest(); } diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index 63d716a68d7c..2c46e0f4d0ab 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -221,7 +221,7 @@ tasks { dependsOn(shadowJar, baseJavaagentJar) } - if (findProperty("removeJarVersionNumbers")=="true") { + if (findProperty("removeJarVersionNumbers") == "true") { withType().configureEach { archiveVersion.set("") } diff --git a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts index 72e627e7a5a4..6fb5e5f32bb6 100644 --- a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts +++ b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts @@ -25,6 +25,12 @@ val v1_15Deps by configurations.creating { // exclude the bom added by dependencyManagement exclude("io.opentelemetry", "opentelemetry-bom") } +val v1_27Deps by configurations.creating { + isCanBeResolved = true + isCanBeConsumed = false + // exclude the bom added by dependencyManagement + exclude("io.opentelemetry", "opentelemetry-bom") +} // configuration for publishing the shadowed artifact val v1_10 by configurations.creating { @@ -35,6 +41,10 @@ val v1_15 by configurations.creating { isCanBeConsumed = true isCanBeResolved = false } +val v1_27 by configurations.creating { + isCanBeConsumed = true + isCanBeResolved = false +} dependencies { latestDeps("io.opentelemetry:opentelemetry-api") @@ -50,6 +60,11 @@ dependencies { strictly("1.15.0") } } + v1_27Deps("io.opentelemetry:$it") { + version { + strictly("1.27.0") + } + } } } @@ -73,9 +88,14 @@ tasks { configurations = listOf(v1_15Deps) archiveClassifier.set("v1_15") } + val v1_27Shadow by registering(ShadowJar::class) { + configurations = listOf(v1_27Deps) + archiveClassifier.set("v1_27") + } artifacts { add(v1_10.name, v1_10Shadow) add(v1_15.name, v1_15Shadow) + add(v1_27.name, v1_27Shadow) } } diff --git a/settings.gradle.kts b/settings.gradle.kts index f3bb19af8e11..ea21f116deca 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -383,7 +383,7 @@ hideFromDependabot(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:jav hideFromDependabot(":instrumentation:opentelemetry-api:opentelemetry-api-1.4:javaagent") hideFromDependabot(":instrumentation:opentelemetry-api:opentelemetry-api-1.10:javaagent") hideFromDependabot(":instrumentation:opentelemetry-api:opentelemetry-api-1.15:javaagent") -hideFromDependabot(":instrumentation:opentelemetry-api:opentelemetry-api-logs-1.23:javaagent") +hideFromDependabot(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent") hideFromDependabot(":instrumentation:opentelemetry-extension-annotations-1.0:javaagent") hideFromDependabot(":instrumentation:opentelemetry-extension-kotlin-1.0:javaagent") hideFromDependabot(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent")