Skip to content
This repository has been archived by the owner on Jul 1, 2022. It is now read-only.

Spans with multiple references have no parent when converted to Thrift #705

Closed
william-tran opened this issue Apr 9, 2020 · 3 comments
Closed

Comments

@william-tran
Copy link

Requirement - what kind of business use case are you trying to solve?

I'm trying to send Jaeger traces through the opentelementry-collector via Thrift HTTP, and out to multiple backends. Some of my traces have spans with multiple parents. Jaeger's UI is tolerant of this situation, but others like Honeycomb expect a parent span for all spans other than the root. See honeycombio/opentelemetry-exporter-go#69

Problem - what in Jaeger blocks you from solving the requirement?

If there are multiple references, JaegerThriftSpanConverter sets the parentId to 0.

However, there's other parts of Jaeger that infer the parent to be the first ChildOf reference:

Proposal - what do you suggest to solve the problem or improve the existing situation?

Maybe this should be clarified in the otel spec, that when converting from a list of OpenTracing Span references, if there exists only one child_of reference from the same trace, use that as the parent, otherwise the span will have no parent. Then apply this consistently to any formats that use span.parentId.

@william-tran
Copy link
Author

Looking at the opentracing shim for otel, the first reference is used as the parent regardless of the reference type:
https://github.com/open-telemetry/opentelemetry-java/blob/master/opentracing_shim/src/main/java/io/opentelemetry/opentracingshim/SpanBuilderShim.java

@pavolloffay
Copy link
Member

Just to clarify are you using maven artifact jaeger-client-java to create and send traces to Jaeger?

@william-tran
Copy link
Author

Yes, this project reproduces the issue: https://github.com/william-tran/tracing-tests

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants