diff --git a/CHANGELOG.md b/CHANGELOG.md index b609c4ef0f..d2fffce60d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,10 @@ - Add SENTRY_AUTO_INIT environment variable to control OpenTelemetry Agent init ([#2410](https://github.com/getsentry/sentry-java/pull/2410)) - Add OpenTelemetryLinkErrorEventProcessor for linking errors to traces created via OpenTelemetry ([#2418](https://github.com/getsentry/sentry-java/pull/2418)) +### Dependencies + +- Bump OpenTelemetry to 1.20.1 and OpenTelemetry Java Agent to 1.20.2 ([#2420](https://github.com/getsentry/sentry-java/pull/2420)) + ## 6.9.1 ### Fixes diff --git a/buildSrc/src/main/java/Config.kt b/buildSrc/src/main/java/Config.kt index ccfc0249ec..3f15e42824 100644 --- a/buildSrc/src/main/java/Config.kt +++ b/buildSrc/src/main/java/Config.kt @@ -135,10 +135,19 @@ object Config { val apolloKotlin = "com.apollographql.apollo3:apollo-runtime:3.3.0" - val otelVersion = "1.19.0" - val otelAlphaVersion = "1.19.0-alpha" - val otelJavaagentVersion = "1.19.2" - val otelJavaagentAlphaVersion = "1.19.2-alpha" + object OpenTelemetry { + val otelVersion = "1.20.1" + val otelAlphaVersion = "1.20.1-alpha" + val otelJavaagentVersion = "1.20.2" + val otelJavaagentAlphaVersion = "1.20.2-alpha" + + val otelSdk = "io.opentelemetry:opentelemetry-sdk:$otelVersion" + val otelSemconv = "io.opentelemetry:opentelemetry-semconv:$otelAlphaVersion" + val otelJavaAgent = "io.opentelemetry.javaagent:opentelemetry-javaagent:$otelJavaagentVersion" + val otelJavaAgentExtensionApi = "io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api:$otelJavaagentAlphaVersion" + val otelJavaAgentTooling = "io.opentelemetry.javaagent:opentelemetry-javaagent-tooling:$otelJavaagentAlphaVersion" + val otelExtensionAutoconfigureSpi = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:$otelVersion" + } } object AnnotationProcessors { diff --git a/sentry-opentelemetry/sentry-opentelemetry-agent/build.gradle.kts b/sentry-opentelemetry/sentry-opentelemetry-agent/build.gradle.kts index 495e200f24..80b68430db 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-agent/build.gradle.kts +++ b/sentry-opentelemetry/sentry-opentelemetry-agent/build.gradle.kts @@ -14,8 +14,12 @@ fun relocatePackages(shadowJar: ShadowJar) { // rewrite dependencies calling Logger.getLogger shadowJar.relocate("java.util.logging.Logger", "io.opentelemetry.javaagent.bootstrap.PatchLogger") - // rewrite library instrumentation dependencies - shadowJar.relocate("io.opentelemetry.instrumentation", "io.opentelemetry.javaagent.shaded.instrumentation") + // prevents conflict with library instrumentation, since these classes live in the bootstrap class loader + shadowJar.relocate("io.opentelemetry.instrumentation", "io.opentelemetry.javaagent.shaded.instrumentation") { + // Exclude resource providers since they live in the agent class loader + exclude("io.opentelemetry.instrumentation.resources.*") + exclude("io.opentelemetry.instrumentation.spring.resources.*") + } // relocate OpenTelemetry API usage shadowJar.relocate("io.opentelemetry.api", "io.opentelemetry.javaagent.shaded.io.opentelemetry.api") @@ -50,7 +54,7 @@ val upstreamAgent = configurations.create("upstreamAgent") { dependencies { bootstrapLibs(projects.sentry) javaagentLibs(projects.sentryOpentelemetry.sentryOpentelemetryAgentcustomization) - upstreamAgent("io.opentelemetry.javaagent:opentelemetry-javaagent:${Config.Libs.otelJavaagentVersion}") + upstreamAgent(Config.Libs.OpenTelemetry.otelJavaAgent) } fun isolateClasses(jars: Iterable): CopySpec { @@ -146,11 +150,11 @@ tasks { attributes.put("Can-Redefine-Classes", "true") attributes.put("Can-Retransform-Classes", "true") attributes.put("Implementation-Vendor", "Sentry") - attributes.put("Implementation-Version", "sentry-${project.version}-otel-${Config.Libs.otelJavaagentVersion}") + attributes.put("Implementation-Version", "sentry-${project.version}-otel-${Config.Libs.OpenTelemetry.otelJavaagentVersion}") attributes.put("Sentry-Version-Name", project.version) attributes.put("Sentry-Opentelemetry-SDK-Name", Config.Sentry.SENTRY_OPENTELEMETRY_AGENT_SDK_NAME) - attributes.put("Sentry-Opentelemetry-Version-Name", Config.Libs.otelVersion) - attributes.put("Sentry-Opentelemetry-Javaagent-Version-Name", Config.Libs.otelJavaagentVersion) + attributes.put("Sentry-Opentelemetry-Version-Name", Config.Libs.OpenTelemetry.otelVersion) + attributes.put("Sentry-Opentelemetry-Javaagent-Version-Name", Config.Libs.OpenTelemetry.otelJavaagentVersion) } } diff --git a/sentry-opentelemetry/sentry-opentelemetry-agentcustomization/build.gradle.kts b/sentry-opentelemetry/sentry-opentelemetry-agentcustomization/build.gradle.kts index 0b0dc08ca1..a9b7f3666f 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-agentcustomization/build.gradle.kts +++ b/sentry-opentelemetry/sentry-opentelemetry-agentcustomization/build.gradle.kts @@ -22,10 +22,10 @@ dependencies { compileOnly(projects.sentry) implementation(projects.sentryOpentelemetry.sentryOpentelemetryCore) - compileOnly("io.opentelemetry:opentelemetry-sdk:${Config.Libs.otelVersion}") - compileOnly("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:${Config.Libs.otelVersion}") - compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-extension-api:${Config.Libs.otelJavaagentAlphaVersion}") - compileOnly("io.opentelemetry.javaagent:opentelemetry-javaagent-tooling:${Config.Libs.otelJavaagentAlphaVersion}") + compileOnly(Config.Libs.OpenTelemetry.otelSdk) + compileOnly(Config.Libs.OpenTelemetry.otelExtensionAutoconfigureSpi) + compileOnly(Config.Libs.OpenTelemetry.otelJavaAgentExtensionApi) + compileOnly(Config.Libs.OpenTelemetry.otelJavaAgentTooling) compileOnly(Config.CompileOnly.nopen) errorprone(Config.CompileOnly.nopenChecker) diff --git a/sentry-opentelemetry/sentry-opentelemetry-core/build.gradle.kts b/sentry-opentelemetry/sentry-opentelemetry-core/build.gradle.kts index c9c248ee01..c8db1650b2 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-core/build.gradle.kts +++ b/sentry-opentelemetry/sentry-opentelemetry-core/build.gradle.kts @@ -21,8 +21,8 @@ tasks.withType().configureEach { dependencies { compileOnly(projects.sentry) - compileOnly("io.opentelemetry:opentelemetry-sdk:${Config.Libs.otelVersion}") - compileOnly("io.opentelemetry:opentelemetry-semconv:${Config.Libs.otelAlphaVersion}") + compileOnly(Config.Libs.OpenTelemetry.otelSdk) + compileOnly(Config.Libs.OpenTelemetry.otelSemconv) compileOnly(Config.CompileOnly.nopen) errorprone(Config.CompileOnly.nopenChecker) @@ -37,8 +37,8 @@ dependencies { testImplementation(Config.TestLibs.mockitoKotlin) testImplementation(Config.TestLibs.awaitility) - testImplementation("io.opentelemetry:opentelemetry-sdk:${Config.Libs.otelVersion}") - testImplementation("io.opentelemetry:opentelemetry-semconv:${Config.Libs.otelAlphaVersion}") + testImplementation(Config.Libs.OpenTelemetry.otelSdk) + testImplementation(Config.Libs.OpenTelemetry.otelSemconv) } configure {