Integration between RUM traces and backend traces (distributed tracing)

Hi,

We have started our journey to implement RUM using rum-js 5.16.3 and we have been able to implemented in our UI where we can capture user interactions and capture HTTP requests

Certainly the trace.id is included in the metadata

But the problem consists that backend services (which are also instrumented) are not shown in the waterfall diagram, only HTTP requests to them trigger by the browser.

Now, while we search using the trace.id from the original RUM transaction, we can see all the backend microservices which were involved in the requests, but not visible from the original RUM transaction.

Is there something that can be done to be able to display the full waterfall diagram or navigate from the original RUM trace into all the backend traces without having to search by the trace.id?

Kibana version: v 8.16.2

Elasticsearch version: v 8.16.2

APM Server version: 8.16.2

APM Agent language and version: rum-js 5.16.3

Browser version: Chrome 131.0.677

Can you share your RUM configuration and confirm if you are using the distributedTracingOrigins option as per the documentation?

Hi @carly.richmond ,
I am working with @zvazquez . I have gone through the given documentation and understand that we do not need distributedTracingOrigins as we are not doing cross origin requests. Here is the config RUM js agent initialized with :

Additionally, what I noticed is that RUM agent is setting traceparent request header on all network calls, however when we look at the APM page it only shows front-end traces and If I filter traces with same traceId from the traceparent header, I am able to see traces across backend and front-end. [Attached all 3 screenshots below:]

What could be the issue here? What needs to be done to show both backend and front-end spans in a single trace?

Hi @zvazquez and @SanketBhat,

Thanks for the additional information. Can you confirm what you are using for instrumenting the backend services?

Can you also check the presence and value of the tracestate header in addition to the traceparent header details you have provided?