From 2e450ea949976f5ef7f53b82713d7c674a81e677 Mon Sep 17 00:00:00 2001 From: "otelbot[bot]" <197425009+otelbot[bot]@users.noreply.github.com> Date: Tue, 15 Jul 2025 08:09:18 -0700 Subject: [PATCH] Update the OpenTelemetry SDK version to 1.52.0 (#14231) Co-authored-by: otelbot <197425009+otelbot@users.noreply.github.com> Co-authored-by: Lauri Tulmin --- .fossa.yml | 3 + dependencyManagement/build.gradle.kts | 2 +- examples/distro/build.gradle | 2 +- examples/extension/build.gradle | 2 +- .../v1_27/ApplicationOpenTelemetry127.java | 10 +- .../logs/ApplicationLogger140Incubator.java | 4 +- .../logs/ApplicationLogger147Incubator.java | 4 +- .../javaagent/build.gradle.kts | 9 + ...plicationLogRecordBuilder150Incubator.java | 63 +------ .../logs/ApplicationLogger150Incubator.java | 8 +- .../v1_50/logs/LoggerTest.java | 4 +- .../javaagent/build.gradle.kts | 17 ++ ...etryApiIncubatorInstrumentationModule.java | 41 +++++ ...OpenTelemetryIncubatorInstrumentation.java | 40 +++++ .../logs/ApplicationLogger152Incubator.java | 36 ++++ .../ApplicationLoggerFactory152Incubator.java | 19 ++ .../v1_52/incubator/logs/LoggerTest.java | 165 ++++++++++++++++++ .../opentelemetry-api-1.52/metadata.yaml | 1 + .../OpenTelemetryAutoConfiguration.java | 23 +-- javaagent/build.gradle.kts | 1 + licenses/licenses.md | 105 ++++++----- .../okhttp3/internal/publicsuffix/NOTICE | 5 - .../build.gradle.kts | 21 +++ settings.gradle.kts | 1 + .../AbstractOtelSpringStarterSmokeTest.java | 4 +- 25 files changed, 443 insertions(+), 147 deletions(-) create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/build.gradle.kts create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/OpenTelemetryIncubatorInstrumentation.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLogger152Incubator.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLoggerFactory152Incubator.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/LoggerTest.java create mode 100644 instrumentation/opentelemetry-api/opentelemetry-api-1.52/metadata.yaml delete mode 100644 licenses/okhttp-4.12.0.jar/okhttp3/internal/publicsuffix/NOTICE diff --git a/.fossa.yml b/.fossa.yml index 0a29d3ce46..7ac04ccf5b 100644 --- a/.fossa.yml +++ b/.fossa.yml @@ -769,6 +769,9 @@ targets: - type: gradle path: ./ target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent' + - type: gradle + path: ./ + target: ':instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent' - type: gradle path: ./ target: ':instrumentation:pekko:pekko-actor-1.0:javaagent' diff --git a/dependencyManagement/build.gradle.kts b/dependencyManagement/build.gradle.kts index ba26ce6645..98def282f8 100644 --- a/dependencyManagement/build.gradle.kts +++ b/dependencyManagement/build.gradle.kts @@ -5,7 +5,7 @@ plugins { data class DependencySet(val group: String, val version: String, val modules: List) // this line is managed by .github/scripts/update-sdk-version.sh -val otelSdkVersion = "1.51.0" +val otelSdkVersion = "1.52.0" val otelContribVersion = "1.47.0-alpha" val otelSdkAlphaVersion = otelSdkVersion.replaceFirst("(-SNAPSHOT)?$".toRegex(), "-alpha$1") diff --git a/examples/distro/build.gradle b/examples/distro/build.gradle index bf4a960ea3..6bd16cccfe 100644 --- a/examples/distro/build.gradle +++ b/examples/distro/build.gradle @@ -27,7 +27,7 @@ subprojects { ext { versions = [ // this line is managed by .github/scripts/update-sdk-version.sh - opentelemetrySdk : "1.51.0", + opentelemetrySdk : "1.52.0", // these lines are managed by .github/scripts/update-version.sh opentelemetryJavaagent : "2.18.0-SNAPSHOT", diff --git a/examples/extension/build.gradle b/examples/extension/build.gradle index b29d7be33e..e63415d839 100644 --- a/examples/extension/build.gradle +++ b/examples/extension/build.gradle @@ -23,7 +23,7 @@ version '1.0' ext { versions = [ // this line is managed by .github/scripts/update-sdk-version.sh - opentelemetrySdk : "1.51.0", + opentelemetrySdk : "1.52.0", // these lines are managed by .github/scripts/update-version.sh opentelemetryJavaagent : "2.18.0-SNAPSHOT", 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 index d5529f8ec9..7e4b0df3fb 100644 --- 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 @@ -120,10 +120,16 @@ public final class ApplicationOpenTelemetry127 implements OpenTelemetry { } private static ApplicationLoggerFactory getLoggerFactory() { - // this class is defined in opentelemetry-api-1.50 + // this class is defined in opentelemetry-api-1.52 ApplicationLoggerFactory loggerFactory = getLoggerFactory( - "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.incubator.logs.ApplicationLoggerFactory150Incubator"); + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs.ApplicationLoggerFactory150Incubator"); + // this class is defined in opentelemetry-api-1.50 + if (loggerFactory == null) { + loggerFactory = + getLoggerFactory( + "io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.incubator.logs.ApplicationLoggerFactory150Incubator"); + } if (loggerFactory == null) { // this class is defined in opentelemetry-api-1.50 loggerFactory = diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.40/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_40/incubator/logs/ApplicationLogger140Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.40/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_40/incubator/logs/ApplicationLogger140Incubator.java index 6096c81796..04762e5d94 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.40/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_40/incubator/logs/ApplicationLogger140Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.40/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_40/incubator/logs/ApplicationLogger140Incubator.java @@ -6,6 +6,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_40.incubator.logs; import application.io.opentelemetry.api.incubator.logs.ExtendedLogger; +import io.opentelemetry.api.logs.Severity; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLogger; public class ApplicationLogger140Incubator extends ApplicationLogger implements ExtendedLogger { @@ -19,6 +20,7 @@ public class ApplicationLogger140Incubator extends ApplicationLogger implements @Override public boolean isEnabled() { - return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger).isEnabled(); + return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger) + .isEnabled(Severity.UNDEFINED_SEVERITY_NUMBER); } } diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_47/incubator/logs/ApplicationLogger147Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_47/incubator/logs/ApplicationLogger147Incubator.java index 7a133cdd82..f0440ba49e 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_47/incubator/logs/ApplicationLogger147Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.47/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_47/incubator/logs/ApplicationLogger147Incubator.java @@ -7,6 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_47.incuba import application.io.opentelemetry.api.incubator.logs.ExtendedLogRecordBuilder; import application.io.opentelemetry.api.incubator.logs.ExtendedLogger; +import io.opentelemetry.api.logs.Severity; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLogger; class ApplicationLogger147Incubator extends ApplicationLogger implements ExtendedLogger { @@ -20,7 +21,8 @@ class ApplicationLogger147Incubator extends ApplicationLogger implements Extende @Override public boolean isEnabled() { - return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger).isEnabled(); + return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger) + .isEnabled(Severity.UNDEFINED_SEVERITY_NUMBER); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/build.gradle.kts index cc36f53bae..fa60bf72bc 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/build.gradle.kts +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/build.gradle.kts @@ -15,6 +15,15 @@ dependencies { testImplementation("io.opentelemetry:opentelemetry-api-incubator") } +configurations.configureEach { + if (name.endsWith("testRuntimeClasspath", true) || name.endsWith("testCompileClasspath", true)) { + resolutionStrategy { + force("io.opentelemetry:opentelemetry-api:1.50.0") + force("io.opentelemetry:opentelemetry-api-incubator:1.50.0-alpha") + } + } +} + testing { suites { val incubatorTest by registering(JvmTestSuite::class) { diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/incubator/logs/ApplicationLogRecordBuilder150Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/incubator/logs/ApplicationLogRecordBuilder150Incubator.java index a6c8decbce..95c7d2558c 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/incubator/logs/ApplicationLogRecordBuilder150Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/incubator/logs/ApplicationLogRecordBuilder150Incubator.java @@ -18,6 +18,7 @@ import application.io.opentelemetry.api.logs.Severity; import application.io.opentelemetry.context.Context; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.trace.Bridging; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.LogBridging; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.logs.ApplicationLogRecordBuilder150; import java.time.Instant; import java.util.concurrent.TimeUnit; @@ -76,7 +77,7 @@ public class ApplicationLogRecordBuilder150Incubator extends ApplicationLogRecor @Override public ExtendedLogRecordBuilder setSeverity(Severity severity) { - agentLogRecordBuilder.setSeverity(convertSeverity(severity)); + agentLogRecordBuilder.setSeverity(LogBridging.toAgent(severity)); return this; } @@ -135,66 +136,6 @@ public class ApplicationLogRecordBuilder150Incubator extends ApplicationLogRecor return this; } - private static io.opentelemetry.api.logs.Severity convertSeverity(Severity applicationSeverity) { - if (applicationSeverity == null) { - return null; - } - switch (applicationSeverity) { - case UNDEFINED_SEVERITY_NUMBER: - return io.opentelemetry.api.logs.Severity.UNDEFINED_SEVERITY_NUMBER; - case TRACE: - return io.opentelemetry.api.logs.Severity.TRACE; - case TRACE2: - return io.opentelemetry.api.logs.Severity.TRACE2; - case TRACE3: - return io.opentelemetry.api.logs.Severity.TRACE3; - case TRACE4: - return io.opentelemetry.api.logs.Severity.TRACE4; - case DEBUG: - return io.opentelemetry.api.logs.Severity.DEBUG; - case DEBUG2: - return io.opentelemetry.api.logs.Severity.DEBUG2; - case DEBUG3: - return io.opentelemetry.api.logs.Severity.DEBUG3; - case DEBUG4: - return io.opentelemetry.api.logs.Severity.DEBUG4; - case INFO: - return io.opentelemetry.api.logs.Severity.INFO; - case INFO2: - return io.opentelemetry.api.logs.Severity.INFO2; - case INFO3: - return io.opentelemetry.api.logs.Severity.INFO3; - case INFO4: - return io.opentelemetry.api.logs.Severity.INFO4; - case WARN: - return io.opentelemetry.api.logs.Severity.WARN; - case WARN2: - return io.opentelemetry.api.logs.Severity.WARN2; - case WARN3: - return io.opentelemetry.api.logs.Severity.WARN3; - case WARN4: - return io.opentelemetry.api.logs.Severity.WARN4; - case ERROR: - return io.opentelemetry.api.logs.Severity.ERROR; - case ERROR2: - return io.opentelemetry.api.logs.Severity.ERROR2; - case ERROR3: - return io.opentelemetry.api.logs.Severity.ERROR3; - case ERROR4: - return io.opentelemetry.api.logs.Severity.ERROR4; - case FATAL: - return io.opentelemetry.api.logs.Severity.FATAL; - case FATAL2: - return io.opentelemetry.api.logs.Severity.FATAL2; - case FATAL3: - return io.opentelemetry.api.logs.Severity.FATAL3; - case FATAL4: - return io.opentelemetry.api.logs.Severity.FATAL4; - } - - throw new IllegalStateException("Unhandled severity: " + applicationSeverity.name()); - } - @SuppressWarnings({"unchecked", "rawtypes"}) private static io.opentelemetry.api.incubator.common.ExtendedAttributes convertExtendedAttributes( ExtendedAttributes applicationAttributes) { diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/incubator/logs/ApplicationLogger150Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/incubator/logs/ApplicationLogger150Incubator.java index 4b6aef6aab..6265e6f466 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/incubator/logs/ApplicationLogger150Incubator.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/incubator/logs/ApplicationLogger150Incubator.java @@ -7,20 +7,22 @@ package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.incuba import application.io.opentelemetry.api.incubator.logs.ExtendedLogRecordBuilder; import application.io.opentelemetry.api.incubator.logs.ExtendedLogger; +import io.opentelemetry.api.logs.Severity; import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLogger; -class ApplicationLogger150Incubator extends ApplicationLogger implements ExtendedLogger { +public class ApplicationLogger150Incubator extends ApplicationLogger implements ExtendedLogger { private final io.opentelemetry.api.logs.Logger agentLogger; - ApplicationLogger150Incubator(io.opentelemetry.api.logs.Logger agentLogger) { + public ApplicationLogger150Incubator(io.opentelemetry.api.logs.Logger agentLogger) { super(agentLogger); this.agentLogger = agentLogger; } @Override public boolean isEnabled() { - return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger).isEnabled(); + return ((io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger) + .isEnabled(Severity.UNDEFINED_SEVERITY_NUMBER); } @Override diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/logs/LoggerTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/logs/LoggerTest.java index d361682806..2078e09691 100644 --- a/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/logs/LoggerTest.java +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.50/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_50/logs/LoggerTest.java @@ -20,7 +20,6 @@ import io.opentelemetry.api.trace.TraceFlags; import io.opentelemetry.api.trace.TraceState; import io.opentelemetry.context.Context; import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; -import io.opentelemetry.sdk.logs.data.internal.ExtendedLogRecordData; import io.opentelemetry.sdk.trace.IdGenerator; import java.time.Instant; import java.util.concurrent.TimeUnit; @@ -81,8 +80,7 @@ class LoggerTest { logRecordData -> { assertThat(logRecordData.getInstrumentationScopeInfo().getName()) .isEqualTo(instrumentationName); - assertThat(((ExtendedLogRecordData) logRecordData).getEventName()) - .isEqualTo("eventName"); + assertThat(logRecordData.getEventName()).isEqualTo("eventName"); assertThat(logRecordData.getInstrumentationScopeInfo().getVersion()) .isEqualTo("1.2.3"); assertThat(logRecordData.getTimestampEpochNanos()).isGreaterThan(0); diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/build.gradle.kts b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/build.gradle.kts new file mode 100644 index 0000000000..f525ee4e85 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/build.gradle.kts @@ -0,0 +1,17 @@ +plugins { + id("otel.javaagent-instrumentation") +} + +dependencies { + compileOnly(project(":opentelemetry-api-shaded-for-instrumenting", configuration = "v1_52")) + compileOnly("io.opentelemetry:opentelemetry-api-incubator") + + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.0:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.27:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent")) + implementation(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent")) + + testImplementation("io.opentelemetry:opentelemetry-api-incubator") +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java new file mode 100644 index 0000000000..45afeee367 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/OpenTelemetryApiIncubatorInstrumentationModule.java @@ -0,0 +1,41 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator; + +import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; +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 io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule; +import java.util.List; +import net.bytebuddy.matcher.ElementMatcher; + +@AutoService(InstrumentationModule.class) +public class OpenTelemetryApiIncubatorInstrumentationModule extends InstrumentationModule + implements ExperimentalInstrumentationModule { + public OpenTelemetryApiIncubatorInstrumentationModule() { + super("opentelemetry-api", "opentelemetry-api-1.52", "opentelemetry-api-incubator-1.52"); + } + + @Override + public ElementMatcher.Junction classLoaderMatcher() { + return hasClassesNamed( + "application.io.opentelemetry.api.common.Value", + "application.io.opentelemetry.api.incubator.common.ExtendedAttributes"); + } + + @Override + public List typeInstrumentations() { + return singletonList(new OpenTelemetryIncubatorInstrumentation()); + } + + @Override + public String getModuleGroup() { + return "opentelemetry-api-bridge"; + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/OpenTelemetryIncubatorInstrumentation.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/OpenTelemetryIncubatorInstrumentation.java new file mode 100644 index 0000000000..d9b8c5b36a --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/OpenTelemetryIncubatorInstrumentation.java @@ -0,0 +1,40 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator; + +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 io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs.ApplicationLoggerFactory152Incubator; +import net.bytebuddy.asm.Advice; +import net.bytebuddy.description.type.TypeDescription; +import net.bytebuddy.matcher.ElementMatcher; + +public class OpenTelemetryIncubatorInstrumentation implements TypeInstrumentation { + + @Override + public ElementMatcher typeMatcher() { + return named("application.io.opentelemetry.api.GlobalOpenTelemetry"); + } + + @Override + public void transform(TypeTransformer transformer) { + transformer.applyAdviceToMethod( + none(), OpenTelemetryIncubatorInstrumentation.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 ApplicationLoggerFactory152Incubator is + // recognized as helper class and injected into class loader + ApplicationLoggerFactory152Incubator.class.getName(); + } + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLogger152Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLogger152Incubator.java new file mode 100644 index 0000000000..21044d19db --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLogger152Incubator.java @@ -0,0 +1,36 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs; + +import application.io.opentelemetry.api.incubator.logs.ExtendedLogger; +import application.io.opentelemetry.api.logs.Severity; +import application.io.opentelemetry.context.Context; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.context.AgentContextStorage; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.LogBridging; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_50.incubator.logs.ApplicationLogger150Incubator; + +@SuppressWarnings("deprecation") // isEnabled() in ExtendedLogger has been deprecated +class ApplicationLogger152Incubator extends ApplicationLogger150Incubator + implements ExtendedLogger { + + private final io.opentelemetry.api.incubator.logs.ExtendedLogger agentLogger; + + ApplicationLogger152Incubator(io.opentelemetry.api.logs.Logger agentLogger) { + super(agentLogger); + this.agentLogger = (io.opentelemetry.api.incubator.logs.ExtendedLogger) agentLogger; + } + + @Override + public boolean isEnabled(Severity severity, Context applicationContext) { + return agentLogger.isEnabled( + LogBridging.toAgent(severity), AgentContextStorage.getAgentContext(applicationContext)); + } + + @Override + public boolean isEnabled(Severity severity) { + return agentLogger.isEnabled(LogBridging.toAgent(severity)); + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLoggerFactory152Incubator.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLoggerFactory152Incubator.java new file mode 100644 index 0000000000..aa32ff3c18 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/ApplicationLoggerFactory152Incubator.java @@ -0,0 +1,19 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs; + +import io.opentelemetry.api.logs.Logger; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLogger; +import io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_27.logs.ApplicationLoggerFactory; + +// this class is used from opentelemetry-api-1.27.0 via reflection +public class ApplicationLoggerFactory152Incubator implements ApplicationLoggerFactory { + + @Override + public ApplicationLogger newLogger(Logger agentLogger) { + return new ApplicationLogger152Incubator(agentLogger); + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/LoggerTest.java b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/LoggerTest.java new file mode 100644 index 0000000000..7a29a2e5aa --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/opentelemetryapi/v1_52/incubator/logs/LoggerTest.java @@ -0,0 +1,165 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.opentelemetryapi.v1_52.incubator.logs; + +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.common.KeyValue; +import io.opentelemetry.api.common.Value; +import io.opentelemetry.api.common.ValueType; +import io.opentelemetry.api.incubator.common.ExtendedAttributeKey; +import io.opentelemetry.api.incubator.common.ExtendedAttributes; +import io.opentelemetry.api.incubator.logs.ExtendedLogger; +import io.opentelemetry.api.logs.Logger; +import io.opentelemetry.api.logs.Severity; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.SpanContext; +import io.opentelemetry.api.trace.TraceFlags; +import io.opentelemetry.api.trace.TraceState; +import io.opentelemetry.context.Context; +import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; +import io.opentelemetry.sdk.logs.data.internal.ExtendedLogRecordData; +import io.opentelemetry.sdk.trace.IdGenerator; +import java.time.Instant; +import java.util.concurrent.TimeUnit; +import java.util.stream.Stream; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.RegisterExtension; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +class LoggerTest { + + @RegisterExtension + static final AgentInstrumentationExtension testing = AgentInstrumentationExtension.create(); + + private String instrumentationName; + private Logger logger; + + @BeforeEach + void setupLogger(TestInfo test) { + instrumentationName = "test-" + test.getDisplayName(); + logger = + GlobalOpenTelemetry.get() + .getLogsBridge() + .loggerBuilder(instrumentationName) + .setInstrumentationVersion("1.2.3") + .setSchemaUrl("http://schema.org") + .build(); + } + + @Test + void logRecordBuilder() { + assertThat(logger).isInstanceOf(ExtendedLogger.class); + + SpanContext spanContext = + SpanContext.create( + IdGenerator.random().generateTraceId(), + IdGenerator.random().generateSpanId(), + TraceFlags.getDefault(), + TraceState.getDefault()); + + ((ExtendedLogger) logger) + .logRecordBuilder() + .setEventName("eventName") + .setTimestamp(1, TimeUnit.SECONDS) + .setTimestamp(Instant.now()) + .setContext(Context.current().with(Span.wrap(spanContext))) + .setSeverity(Severity.DEBUG) + .setSeverityText("debug") + .setBody("body") + .setAttribute(AttributeKey.stringKey("key1"), "value") + .setAttribute(ExtendedAttributeKey.stringKey("key2"), "value") + .setAllAttributes(Attributes.builder().put("key3", "value").build()) + .setAllAttributes(ExtendedAttributes.builder().put("key4", "value").build()) + .setAttribute( + ExtendedAttributeKey.extendedAttributesKey("key5"), + ExtendedAttributes.builder().put("key6", "value").build()) + .emit(); + + await() + .untilAsserted( + () -> + assertThat(testing.logRecords()) + .satisfiesExactly( + logRecordData -> { + assertThat(logRecordData.getInstrumentationScopeInfo().getName()) + .isEqualTo(instrumentationName); + assertThat(logRecordData.getEventName()).isEqualTo("eventName"); + assertThat(logRecordData.getInstrumentationScopeInfo().getVersion()) + .isEqualTo("1.2.3"); + assertThat(logRecordData.getTimestampEpochNanos()).isGreaterThan(0); + assertThat(logRecordData.getSpanContext()).isEqualTo(spanContext); + assertThat(logRecordData.getSeverity()).isEqualTo(Severity.DEBUG); + assertThat(logRecordData.getSeverityText()).isEqualTo("debug"); + assertThat(logRecordData.getBodyValue().getType()) + .isEqualTo(ValueType.STRING); + assertThat(logRecordData.getBodyValue().getValue()).isEqualTo("body"); + assertThat( + ((ExtendedLogRecordData) logRecordData).getExtendedAttributes()) + .isEqualTo( + ExtendedAttributes.builder() + .put("key1", "value") + .put("key2", "value") + .put("key3", "value") + .put("key4", "value") + .put( + "key5", + ExtendedAttributes.builder().put("key6", "value").build()) + .build()); + })); + } + + private static Stream bodyValues() { + return Stream.of( + Arguments.of(Value.of("hello")), + Arguments.of(Value.of(42)), + Arguments.of(Value.of(42.42)), + Arguments.of(Value.of(true)), + Arguments.of(Value.of(new byte[] {4, 2})), + Arguments.of(Value.of(Value.of("hello"), Value.of(42))), + Arguments.of(Value.of(KeyValue.of("key", Value.of(42))))); + } + + @ParameterizedTest + @MethodSource("bodyValues") + void logBodyValue() { + Value value = Value.of(42); + logger.logRecordBuilder().setBody(value).emit(); + + await() + .untilAsserted( + () -> + assertThat(testing.logRecords()) + .satisfiesExactly( + logRecordData -> { + assertThat(logRecordData.getBodyValue().getType()) + .isEqualTo(value.getType()); + assertThat(logRecordData.getBodyValue().getValue()) + .isEqualTo(value.getValue()); + })); + } + + @Test + void logNullBody() { + Value value = null; + logger.logRecordBuilder().setBody(value).emit(); + + await() + .untilAsserted( + () -> + assertThat(testing.logRecords()) + .satisfiesExactly( + logRecordData -> assertThat(logRecordData.getBodyValue()).isNull())); + } +} diff --git a/instrumentation/opentelemetry-api/opentelemetry-api-1.52/metadata.yaml b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/metadata.yaml new file mode 100644 index 0000000000..5a03ece2f7 --- /dev/null +++ b/instrumentation/opentelemetry-api/opentelemetry-api-1.52/metadata.yaml @@ -0,0 +1 @@ +classification: internal 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 44defb2fe3..b9a9bd7c9a 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 @@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.spring.autoconfigure; import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.trace.TracerProvider; +import io.opentelemetry.common.ComponentLoader; import io.opentelemetry.instrumentation.api.internal.EmbeddedInstrumentationProperties; import io.opentelemetry.instrumentation.spring.autoconfigure.internal.OtelMapConverter; import io.opentelemetry.instrumentation.spring.autoconfigure.internal.SdkEnabled; @@ -18,7 +19,6 @@ import io.opentelemetry.instrumentation.spring.autoconfigure.internal.resources. import io.opentelemetry.instrumentation.spring.autoconfigure.internal.resources.SpringResourceProvider; import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk; import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil; -import io.opentelemetry.sdk.autoconfigure.internal.ComponentLoader; import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper; import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties; import io.opentelemetry.sdk.autoconfigure.spi.ResourceProvider; @@ -107,17 +107,11 @@ public class OpenTelemetryAutoConfiguration { OtelSpringProperties otelSpringProperties, OpenTelemetrySdkComponentLoader componentLoader) { - return AutoConfigureUtil.setComponentLoader( - AutoConfigureUtil.setConfigPropertiesCustomizer( - AutoConfiguredOpenTelemetrySdk.builder(), - c -> - SpringConfigProperties.create( - env, - otlpExporterProperties, - resourceProperties, - otelSpringProperties, - c)), - componentLoader) + return AutoConfigureUtil.setConfigPropertiesCustomizer( + AutoConfiguredOpenTelemetrySdk.builder().setComponentLoader(componentLoader), + c -> + SpringConfigProperties.create( + env, otlpExporterProperties, resourceProperties, otelSpringProperties, c)) .build(); } @@ -170,8 +164,9 @@ public class OpenTelemetryAutoConfiguration { @ConditionalOnMissingBean({ConfigProperties.class}) static class FallbackConfigProperties { @Bean - public ConfigProperties otelProperties() { - return DefaultConfigProperties.create(Collections.emptyMap()); + public ConfigProperties otelProperties(ApplicationContext applicationContext) { + return DefaultConfigProperties.create( + Collections.emptyMap(), new OpenTelemetrySdkComponentLoader(applicationContext)); } } diff --git a/javaagent/build.gradle.kts b/javaagent/build.gradle.kts index c9839a0bea..e49f048a2e 100644 --- a/javaagent/build.gradle.kts +++ b/javaagent/build.gradle.kts @@ -87,6 +87,7 @@ dependencies { baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent")) + baseJavaagentLibs(project(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-api:javaagent")) baseJavaagentLibs(project(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent")) baseJavaagentLibs(project(":instrumentation:executors:javaagent")) diff --git a/licenses/licenses.md b/licenses/licenses.md index 02f798ed22..25ac2e3c99 100644 --- a/licenses/licenses.md +++ b/licenses/licenses.md @@ -49,195 +49,194 @@ > - **POM Project URL**: [http://code.google.com/p/concurrentlinkedhashmap](http://code.google.com/p/concurrentlinkedhashmap) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**9** **Group:** `com.squareup.okhttp3` **Name:** `okhttp` **Version:** `4.12.0` +**9** **Group:** `com.squareup.okhttp3` **Name:** `okhttp` **Version:** `5.1.0` > - **POM Project URL**: [https://square.github.io/okhttp/](https://square.github.io/okhttp/) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -> - **Embedded license files**: [okhttp-4.12.0.jar/okhttp3/internal/publicsuffix/NOTICE](okhttp-4.12.0.jar/okhttp3/internal/publicsuffix/NOTICE) -**10** **Group:** `com.squareup.okio` **Name:** `okio` **Version:** `3.15.0` +**10** **Group:** `com.squareup.okhttp3` **Name:** `okhttp-jvm` **Version:** `5.1.0` +> - **POM Project URL**: [https://square.github.io/okhttp/](https://square.github.io/okhttp/) +> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) + +**11** **Group:** `com.squareup.okio` **Name:** `okio` **Version:** `3.15.0` > - **POM Project URL**: [https://github.com/square/okio/](https://github.com/square/okio/) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**11** **Group:** `com.squareup.okio` **Name:** `okio-jvm` **Version:** `3.15.0` +**12** **Group:** `com.squareup.okio` **Name:** `okio-jvm` **Version:** `3.15.0` > - **POM Project URL**: [https://github.com/square/okio/](https://github.com/square/okio/) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**12** **Group:** `io.opentelemetry` **Name:** `opentelemetry-api` **Version:** `1.51.0` +**13** **Group:** `io.opentelemetry` **Name:** `opentelemetry-api` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**13** **Group:** `io.opentelemetry` **Name:** `opentelemetry-api-incubator` **Version:** `1.51.0-alpha` +**14** **Group:** `io.opentelemetry` **Name:** `opentelemetry-api-incubator` **Version:** `1.52.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**14** **Group:** `io.opentelemetry` **Name:** `opentelemetry-context` **Version:** `1.51.0` +**15** **Group:** `io.opentelemetry` **Name:** `opentelemetry-common` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**15** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-common` **Version:** `1.51.0` +**16** **Group:** `io.opentelemetry` **Name:** `opentelemetry-context` **Version:** `1.52.0` +> - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) +> - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +**17** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-common` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**16** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-logging` **Version:** `1.51.0` +**18** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-logging` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**17** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-logging-otlp` **Version:** `1.51.0` +**19** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-logging-otlp` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**18** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-otlp` **Version:** `1.51.0` +**20** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-otlp` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**19** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-otlp-common` **Version:** `1.51.0` +**21** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-otlp-common` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**20** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-prometheus` **Version:** `1.51.0-alpha` +**22** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-prometheus` **Version:** `1.52.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**21** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-sender-okhttp` **Version:** `1.51.0` +**23** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-sender-okhttp` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**22** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-zipkin` **Version:** `1.51.0` +**24** **Group:** `io.opentelemetry` **Name:** `opentelemetry-exporter-zipkin` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**23** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-kotlin` **Version:** `1.51.0` +**25** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-kotlin` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**24** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-trace-propagators` **Version:** `1.51.0` +**26** **Group:** `io.opentelemetry` **Name:** `opentelemetry-extension-trace-propagators` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**25** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk` **Version:** `1.51.0` +**27** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**26** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-common` **Version:** `1.51.0` +**28** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-common` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**27** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-autoconfigure` **Version:** `1.51.0` +**29** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-autoconfigure` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**28** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-autoconfigure-spi` **Version:** `1.51.0` +**30** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-autoconfigure-spi` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**29** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-incubator` **Version:** `1.51.0-alpha` +**31** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-incubator` **Version:** `1.52.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**30** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-jaeger-remote-sampler` **Version:** `1.51.0` +**32** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-extension-jaeger-remote-sampler` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**31** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-logs` **Version:** `1.51.0` +**33** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-logs` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**32** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-metrics` **Version:** `1.51.0` +**34** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-metrics` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**33** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-trace` **Version:** `1.51.0` +**35** **Group:** `io.opentelemetry` **Name:** `opentelemetry-sdk-trace` **Version:** `1.52.0` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java](https://github.com/open-telemetry/opentelemetry-java) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**34** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-aws-resources` **Version:** `1.47.0-alpha` +**36** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-aws-resources` **Version:** `1.47.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**35** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-aws-xray-propagator` **Version:** `1.47.0-alpha` +**37** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-aws-xray-propagator` **Version:** `1.47.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**36** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-azure-resources` **Version:** `1.47.0-alpha` +**38** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-azure-resources` **Version:** `1.47.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**37** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-baggage-processor` **Version:** `1.47.0-alpha` +**39** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-baggage-processor` **Version:** `1.47.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**38** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-cloudfoundry-resources` **Version:** `1.47.0-alpha` +**40** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-cloudfoundry-resources` **Version:** `1.47.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**39** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-gcp-resources` **Version:** `1.47.0-alpha` +**41** **Group:** `io.opentelemetry.contrib` **Name:** `opentelemetry-gcp-resources` **Version:** `1.47.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/opentelemetry-java-contrib](https://github.com/open-telemetry/opentelemetry-java-contrib) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**40** **Group:** `io.opentelemetry.semconv` **Name:** `opentelemetry-semconv` **Version:** `1.34.0` +**42** **Group:** `io.opentelemetry.semconv` **Name:** `opentelemetry-semconv` **Version:** `1.34.0` > - **POM Project URL**: [https://github.com/open-telemetry/semantic-conventions-java](https://github.com/open-telemetry/semantic-conventions-java) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**41** **Group:** `io.opentelemetry.semconv` **Name:** `opentelemetry-semconv-incubating` **Version:** `1.34.0-alpha` +**43** **Group:** `io.opentelemetry.semconv` **Name:** `opentelemetry-semconv-incubating` **Version:** `1.34.0-alpha` > - **POM Project URL**: [https://github.com/open-telemetry/semantic-conventions-java](https://github.com/open-telemetry/semantic-conventions-java) > - **POM License**: Apache License, Version 2.0 - [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) -**42** **Group:** `io.prometheus` **Name:** `prometheus-metrics-config` **Version:** `1.3.8` +**44** **Group:** `io.prometheus` **Name:** `prometheus-metrics-config` **Version:** `1.3.8` > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**43** **Group:** `io.prometheus` **Name:** `prometheus-metrics-exporter-common` **Version:** `1.3.8` +**45** **Group:** `io.prometheus` **Name:** `prometheus-metrics-exporter-common` **Version:** `1.3.8` > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**44** **Group:** `io.prometheus` **Name:** `prometheus-metrics-exporter-httpserver` **Version:** `1.3.8` +**46** **Group:** `io.prometheus` **Name:** `prometheus-metrics-exporter-httpserver` **Version:** `1.3.8` > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**45** **Group:** `io.prometheus` **Name:** `prometheus-metrics-exposition-textformats` **Version:** `1.3.8` +**47** **Group:** `io.prometheus` **Name:** `prometheus-metrics-exposition-textformats` **Version:** `1.3.8` > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**46** **Group:** `io.prometheus` **Name:** `prometheus-metrics-model` **Version:** `1.3.8` +**48** **Group:** `io.prometheus` **Name:** `prometheus-metrics-model` **Version:** `1.3.8` > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**47** **Group:** `io.zipkin.reporter2` **Name:** `zipkin-reporter` **Version:** `3.5.1` +**49** **Group:** `io.zipkin.reporter2` **Name:** `zipkin-reporter` **Version:** `3.5.1` > - **Manifest Project URL**: [https://zipkin.io/](https://zipkin.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) > - **Embedded license files**: [zipkin-reporter-3.5.1.jar/META-INF/LICENSE](zipkin-reporter-3.5.1.jar/META-INF/LICENSE) -**48** **Group:** `io.zipkin.reporter2` **Name:** `zipkin-sender-okhttp3` **Version:** `3.5.1` +**50** **Group:** `io.zipkin.reporter2` **Name:** `zipkin-sender-okhttp3` **Version:** `3.5.1` > - **Manifest Project URL**: [https://zipkin.io/](https://zipkin.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) > - **Embedded license files**: [zipkin-sender-okhttp3-3.5.1.jar/META-INF/LICENSE](zipkin-sender-okhttp3-3.5.1.jar/META-INF/LICENSE) -**49** **Group:** `io.zipkin.zipkin2` **Name:** `zipkin` **Version:** `2.27.1` +**51** **Group:** `io.zipkin.zipkin2` **Name:** `zipkin` **Version:** `2.27.1` > - **Manifest Project URL**: [http://zipkin.io/](http://zipkin.io/) > - **Manifest License**: Apache License, Version 2.0 (Not Packaged) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) > - **Embedded license files**: [zipkin-2.27.1.jar/META-INF/LICENSE](zipkin-2.27.1.jar/META-INF/LICENSE) -**50** **Group:** `net.bytebuddy` **Name:** `byte-buddy-dep` **Version:** `1.17.6` +**52** **Group:** `net.bytebuddy` **Name:** `byte-buddy-dep` **Version:** `1.17.6` > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) > - **Embedded license files**: [byte-buddy-dep-1.17.6.jar/META-INF/LICENSE](byte-buddy-dep-1.17.6.jar/META-INF/LICENSE) - [byte-buddy-dep-1.17.6.jar/META-INF/NOTICE](byte-buddy-dep-1.17.6.jar/META-INF/NOTICE) -**51** **Group:** `org.jetbrains` **Name:** `annotations` **Version:** `13.0` +**53** **Group:** `org.jetbrains` **Name:** `annotations` **Version:** `13.0` > - **POM Project URL**: [http://www.jetbrains.org](http://www.jetbrains.org) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) -**52** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-stdlib` **Version:** `2.1.21` -> - **POM Project URL**: [https://kotlinlang.org/](https://kotlinlang.org/) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**53** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-stdlib-jdk7` **Version:** `2.1.21` -> - **POM Project URL**: [https://kotlinlang.org/](https://kotlinlang.org/) -> - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) - -**54** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-stdlib-jdk8` **Version:** `2.1.21` +**54** **Group:** `org.jetbrains.kotlin` **Name:** `kotlin-stdlib` **Version:** `2.2.0` > - **POM Project URL**: [https://kotlinlang.org/](https://kotlinlang.org/) > - **POM License**: Apache License, Version 2.0 - [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0) diff --git a/licenses/okhttp-4.12.0.jar/okhttp3/internal/publicsuffix/NOTICE b/licenses/okhttp-4.12.0.jar/okhttp3/internal/publicsuffix/NOTICE deleted file mode 100644 index 94973fde8a..0000000000 --- a/licenses/okhttp-4.12.0.jar/okhttp3/internal/publicsuffix/NOTICE +++ /dev/null @@ -1,5 +0,0 @@ -Note that publicsuffixes.gz is compiled from The Public Suffix List: -https://publicsuffix.org/list/public_suffix_list.dat - -It is subject to the terms of the Mozilla Public License, v. 2.0: -https://mozilla.org/MPL/2.0/ diff --git a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts index 653c76f315..6f24d2c0ee 100644 --- a/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts +++ b/opentelemetry-api-shaded-for-instrumenting/build.gradle.kts @@ -86,6 +86,13 @@ val v1_50Deps by configurations.creating { exclude("io.opentelemetry", "opentelemetry-bom") exclude("io.opentelemetry", "opentelemetry-bom-alpha") } +val v1_52Deps by configurations.creating { + isCanBeResolved = true + isCanBeConsumed = false + // exclude the bom added by dependencyManagement + exclude("io.opentelemetry", "opentelemetry-bom") + exclude("io.opentelemetry", "opentelemetry-bom-alpha") +} // configuration for publishing the shadowed artifact val v1_10 by configurations.creating { isCanBeConsumed = true @@ -131,6 +138,10 @@ val v1_50 by configurations.creating { isCanBeConsumed = true isCanBeResolved = false } +val v1_52 by configurations.creating { + isCanBeConsumed = true + isCanBeResolved = false +} dependencies { latestDeps("io.opentelemetry:opentelemetry-api") @@ -207,6 +218,11 @@ dependencies { strictly("1.50.0-alpha") } } + v1_52Deps("io.opentelemetry:$it") { + version { + strictly("1.52.0-alpha") + } + } } } @@ -266,6 +282,10 @@ tasks { configurations = listOf(v1_50Deps) archiveClassifier.set("v1_50") } + val v1_52Shadow by registering(ShadowJar::class) { + configurations = listOf(v1_52Deps) + archiveClassifier.set("v1_52") + } artifacts { add(v1_10.name, v1_10Shadow) @@ -279,5 +299,6 @@ tasks { add(v1_42.name, v1_42Shadow) add(v1_47.name, v1_47Shadow) add(v1_50.name, v1_50Shadow) + add(v1_52.name, v1_52Shadow) } } diff --git a/settings.gradle.kts b/settings.gradle.kts index 8647d80cff..2d091b0feb 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -437,6 +437,7 @@ include(":instrumentation:opentelemetry-api:opentelemetry-api-1.40:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.42:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.47:javaagent") include(":instrumentation:opentelemetry-api:opentelemetry-api-1.50:javaagent") +include(":instrumentation:opentelemetry-api:opentelemetry-api-1.52:javaagent") include(":instrumentation:opentelemetry-extension-annotations-1.0:javaagent") include(":instrumentation:opentelemetry-extension-kotlin-1.0:javaagent") include(":instrumentation:opentelemetry-instrumentation-annotations-1.16:javaagent") diff --git a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java index 6b277a222e..7395ed49f0 100644 --- a/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java +++ b/smoke-tests-otel-starter/spring-boot-common/src/main/java/io/opentelemetry/spring/smoketest/AbstractOtelSpringStarterSmokeTest.java @@ -201,7 +201,9 @@ class AbstractOtelSpringStarterSmokeTest extends AbstractSpringStarterSmokeTest equalTo(HttpAttributes.HTTP_RESPONSE_STATUS_CODE, 200L), equalTo(HttpAttributes.HTTP_ROUTE, "/ping"), equalTo(ServerAttributes.SERVER_ADDRESS, "localhost"), - equalTo(ClientAttributes.CLIENT_ADDRESS, "127.0.0.1"), + satisfies( + ClientAttributes.CLIENT_ADDRESS, + s -> s.isIn("127.0.0.1", "0:0:0:0:0:0:0:1")), equalTo( AttributeKey.stringArrayKey("http.request.header.key"), Collections.singletonList("value")),