Skip to content

Propagate trace without the Performance Monitoring #45725

Closed
@bruno-garcia

Description

@bruno-garcia

Distributed Tracing built-in to Sentry landed with the addition of Sentry for Performance Monitoring, the SDKs started creating a sentry-trace header for out going HTTP requests. Backend SDKs became aware of those and further propagated the trace information, as well as adding it to any outgoing events: errors or transactions.

For the most part a trace-id is created when a transaction (event used for performance monitoring) is created. And while the transaction exists (and bound to the scope), that trace-id is propagated through HTTP integrations.

With other products landing such as Session Replay, the need to connect a Replay throughout the whole call chain became more prominent. We can do that today if we rely on sentry-trace being propagated but that requires performance monitoring being enabled. That was a constraint to the initial deliverable of having Replay show up on backend errors:

This issue aims to decouple trace propagation and transactions or the performance product. So errors, replays, etc can be linked together across from the frontend to backend services.

# Initial action points
- [ ] SDKs define a `trace-id` and assign to the scope
- [ ] Propagate it downstream similar to how we do when a transaction is bound to the scope
- [ ] How does this play when OTel is used? 
- [ ] TODO

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions