Description
Current behaviour
When leveraging Active Record's async queries functionality (load_async
, async_count
, etc.), the queries that are executed, while noticed by ddtrace and wrapped in spans, are considered separate traces, and are therefore not easily discoverable / correlated to the overall trace (whether it be a web request, background job, or something else).
After looking briefly at the ddtrace source, my hunch is that the reason these are not all part of the same trace is that the query is executed in a different thread from the main trace, and ddtrace is not referencing the parent trace correctly.
Expected behaviour
Active Record async queries should be part of the overall trace.
Steps to reproduce
With diagnostics turned on locally, you can clearly see the trace ID attached to the async query spans is different for each query, and not the same as the overall request trace ID.
Environment
- ddtrace version: 1.19.0
- Configuration block (
Datadog.configure ...
): - Ruby version: 3.3.0
- Operating system: macOS 14.3.1, Ubuntu 22.04
- Relevant library versions: Rails / Active Record 7.1.3