diff --git a/sdk/core/azure-core-metrics-opentelemetry/src/main/java/com/azure/core/metrics/opentelemetry/OpenTelemetryUtils.java b/sdk/core/azure-core-metrics-opentelemetry/src/main/java/com/azure/core/metrics/opentelemetry/OpenTelemetryUtils.java index 4ab175916d02..c654f52b39e9 100644 --- a/sdk/core/azure-core-metrics-opentelemetry/src/main/java/com/azure/core/metrics/opentelemetry/OpenTelemetryUtils.java +++ b/sdk/core/azure-core-metrics-opentelemetry/src/main/java/com/azure/core/metrics/opentelemetry/OpenTelemetryUtils.java @@ -14,6 +14,8 @@ import static com.azure.core.util.tracing.Tracer.PARENT_TRACE_CONTEXT_KEY; class OpenTelemetryUtils { + private static boolean warnedOnContextType = false; + private static boolean warnedOnBuilderType = false; private static final ClientLogger LOGGER = new ClientLogger(OpenTelemetryUtils.class); /** @@ -55,11 +57,14 @@ static io.opentelemetry.context.Context getTraceContextOrCurrent(Context azConte if (traceContextObj instanceof io.opentelemetry.context.Context) { return (io.opentelemetry.context.Context) traceContextObj; } else if (traceContextObj != null) { - LOGGER.warning("Expected instance of `io.opentelemetry.context.Context` under `PARENT_TRACE_CONTEXT_KEY`, but got {}, ignoring it.", traceContextObj.getClass().getName()); + // TODO (limolkova) somehow we can get shaded otel agent context here + if (!warnedOnContextType) { + LOGGER.warning("Expected instance of `io.opentelemetry.context.Context` under `PARENT_TRACE_CONTEXT_KEY`, but got {}, ignoring it.", traceContextObj.getClass().getName()); + warnedOnContextType = true; + } } } - LOGGER.verbose("No context is found under `PARENT_TRACE_CONTEXT_KEY`, getting current context"); return io.opentelemetry.context.Context.current(); } @@ -68,8 +73,9 @@ static Attributes getAttributes(TelemetryAttributes attributesBuilder) { return ((OpenTelemetryAttributes) attributesBuilder).get(); } - if (attributesBuilder != null) { + if (attributesBuilder != null && !warnedOnBuilderType) { LOGGER.warning("Expected instance of `OpenTelemetryAttributeBuilder` in `attributeCollection`, but got {}, ignoring it.", attributesBuilder.getClass().getName()); + warnedOnBuilderType = true; } return Attributes.empty(); diff --git a/sdk/core/azure-core-tracing-opentelemetry/src/main/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracer.java b/sdk/core/azure-core-tracing-opentelemetry/src/main/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracer.java index 0587e5e32008..1a1b34f4ffac 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/src/main/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracer.java +++ b/sdk/core/azure-core-tracing-opentelemetry/src/main/java/com/azure/core/tracing/opentelemetry/OpenTelemetryTracer.java @@ -258,7 +258,6 @@ public AutoCloseable makeSpanCurrent(Context context) { io.opentelemetry.context.Context traceContext = getTraceContextOrDefault(context, null); if (traceContext == null) { - LOGGER.verbose("There is no OpenTelemetry Context on the context, cannot make it current"); return NOOP_CLOSEABLE; } return traceContext.makeCurrent(); @@ -506,10 +505,7 @@ private void addMessagingAttributes(Span span, Context context) { @SuppressWarnings("unchecked") private static T getOrNull(Context context, String key, Class clazz) { final Optional optional = context.getData(key); - final Object result = optional.filter(value -> clazz.isAssignableFrom(value.getClass())).orElseGet(() -> { - LOGGER.verbose("Could not extract key '{}' of type '{}' from context.", key, clazz); - return null; - }); + final Object result = optional.filter(value -> clazz.isAssignableFrom(value.getClass())).orElse(null); return (T) result; }