timescale / promscale

[DEPRECATED] Promscale is a unified metric and trace observability backend for Prometheus, Jaeger and OpenTelemetry built on PostgreSQL and TimescaleDB.
https://www.timescale.com/promscale
Apache License 2.0
1.33k stars 168 forks source link

Add support for Jaeger multiple parent span relationships #1667

Closed alejandrodnm closed 9 months ago

alejandrodnm commented 1 year ago

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.

alejandrodnm commented 1 year ago

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

I left a message https://github.com/jaegertracing/jaeger/pull/3919#discussion_r977892362 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)

alejandrodnm commented 1 year ago

PR and issues created at translator repo

https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/14465

https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/14463