From e16b2d66346dc4b3c4bd047034d7c27652dddd61 Mon Sep 17 00:00:00 2001 From: Tomas Langer Date: Thu, 9 Feb 2023 11:16:00 +0100 Subject: [PATCH] Fix parent handling in OpenTelemetry (#6092) (cherry picked from commit e36870fcf64959a81e77e5f31ce52333c5298c01) --- .../opentelemetry/OpenTelemetrySpanBuilder.java | 10 +++++++--- .../opentelemetry/OpenTelemetrySpanContext.java | 7 +++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tracing/opentelemetry/src/main/java/io/helidon/tracing/opentelemetry/OpenTelemetrySpanBuilder.java b/tracing/opentelemetry/src/main/java/io/helidon/tracing/opentelemetry/OpenTelemetrySpanBuilder.java index fa3e9e2bdc8..a6d0fa55778 100644 --- a/tracing/opentelemetry/src/main/java/io/helidon/tracing/opentelemetry/OpenTelemetrySpanBuilder.java +++ b/tracing/opentelemetry/src/main/java/io/helidon/tracing/opentelemetry/OpenTelemetrySpanBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Oracle and/or its affiliates. + * Copyright (c) 2022, 2023 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ import io.opentelemetry.api.trace.SpanBuilder; import io.opentelemetry.api.trace.SpanKind; +import io.opentelemetry.context.Context; class OpenTelemetrySpanBuilder implements Span.Builder { private final SpanBuilder spanBuilder; @@ -89,7 +90,10 @@ public Span start(Instant instant) { return new OpenTelemetrySpan(span); } - SpanBuilder openTelemetry() { - return spanBuilder; + // used to set open telemetry context as parent, to be equivalent in function to + // #parent(SpanContext) + void parent(Context context) { + this.parentSet = true; + this.spanBuilder.setParent(context); } } diff --git a/tracing/opentelemetry/src/main/java/io/helidon/tracing/opentelemetry/OpenTelemetrySpanContext.java b/tracing/opentelemetry/src/main/java/io/helidon/tracing/opentelemetry/OpenTelemetrySpanContext.java index 16376b01103..1cb7c86ff15 100644 --- a/tracing/opentelemetry/src/main/java/io/helidon/tracing/opentelemetry/OpenTelemetrySpanContext.java +++ b/tracing/opentelemetry/src/main/java/io/helidon/tracing/opentelemetry/OpenTelemetrySpanContext.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Oracle and/or its affiliates. + * Copyright (c) 2022, 2023 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,11 +40,10 @@ public String spanId() { @Override public void asParent(io.helidon.tracing.Span.Builder spanBuilder) { spanBuilder.unwrap(OpenTelemetrySpanBuilder.class) - .openTelemetry() - .setParent(context); + .parent(context); } - public Context openTelemetry() { + Context openTelemetry() { return context; } }