timescale/promscale

Add support for Jaeger multiple parent span relationships

alejandrodnm opened this issue · 2 comments

Is your feature request related to a problem? Please describe.

Sending a Jaeger span with more than one parent returns only the first parent as a Span with a CHILD_OF reference type, all other parents are referenced with FOLLOWS_FROM

This happens because we are using the OTEL translator and OTEL spec allows for only one child. The translator takes the first reference with CHILD_OF and sets that as the parent, all other references are set as links.

We can follow the OTEL trace semanthic convention for opentracing and add the reference type as an attribute to the link. Tentatively we'll use opentracing.ref_type: child_of like the semantic convention proposes.

This values will be used when writing and getting the Jaeger spans to return the correct reference type.

Additionally, we could propose this work be added into the OTEL translator package that we are using.

I closed the issue jaegertracing/jaeger#3918 and PR jaegertracing/jaeger#3919 opened to address the Jaeger integration test when we didn't know multiple parents was a feature.

I left a message jaegertracing/jaeger#3919 (comment) for the Jaeger maintainers about our approach and if it would make sense add support in the OTEL/Jaeger translator, and their opinion on reusing the OTEL semantic convention for opentracing (opentracing.ref_type ) or proposing a Jaeger specific one (jaeger.ref_type)