From 1f02dc6fdde29043e0fcdd9d2f52d7c8c228df50 Mon Sep 17 00:00:00 2001 From: cleverchuk Date: Mon, 16 Oct 2023 13:57:11 -0400 Subject: [PATCH] (#9297) - use compile dependency on `:javaagent-bootstrap` and do runtime check before use. --- .../library-autoconfigure/build.gradle.kts | 2 +- .../v2_17/OpenTelemetryContextDataProvider.java | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/build.gradle.kts b/instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/build.gradle.kts index 9b8ceb49f4c7..26b587e868e3 100644 --- a/instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/build.gradle.kts +++ b/instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/build.gradle.kts @@ -5,7 +5,7 @@ plugins { base.archivesName.set("${base.archivesName.get()}-autoconfigure") dependencies { - implementation(project(":javaagent-bootstrap")) + compileOnly(project(":javaagent-bootstrap")) library("org.apache.logging.log4j:log4j-core:2.17.0") testImplementation(project(":instrumentation:log4j:log4j-context-data:log4j-context-data-common:testing")) diff --git a/instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/log4j/contextdata/v2_17/OpenTelemetryContextDataProvider.java b/instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/log4j/contextdata/v2_17/OpenTelemetryContextDataProvider.java index 2ce6e3126ac5..f11673a228fd 100644 --- a/instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/log4j/contextdata/v2_17/OpenTelemetryContextDataProvider.java +++ b/instrumentation/log4j/log4j-context-data/log4j-context-data-2.17/library-autoconfigure/src/main/java/io/opentelemetry/instrumentation/log4j/contextdata/v2_17/OpenTelemetryContextDataProvider.java @@ -48,7 +48,14 @@ public Map supplyContextData() { contextData.put(TRACE_ID, spanContext.getTraceId()); contextData.put(SPAN_ID, spanContext.getSpanId()); contextData.put(TRACE_FLAGS, spanContext.getTraceFlags().asHex()); - contextData.putAll(ConfiguredResourceAttributesHolder.getResourceAttributes()); + + try { + Class.forName("io.opentelemetry.javaagent.bootstrap.ConfiguredResourceAttributesHolder"); + contextData.putAll(ConfiguredResourceAttributesHolder.getResourceAttributes()); + } catch (ClassNotFoundException ok) { + // this probably shouldn't happen, however if it does happen, we don't care. + } + if (BAGGAGE_ENABLED) { Baggage baggage = Baggage.fromContext(context);