getsentry / getsentry/sentry-python
Had to manually create a transaction to see agent spans when using `asyncio.create_task`
- Dominant language
- Python
- Stars
- 2.2k
- Forks
- 669
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 213
Description
Some asyncio tasks outlive the transaction that was running when they were created, and the spans they create are never sent.
Fabian: Investigated the issue. `create_task` is like spawning a thread that lives longer than the transaction of the HTTP server. So without a manual transaction, the HTTP server transaction is already closed before the agent can add spans to it, resulting in the span being dropped without notice.
Solutions:
- Span first will send the trailing spans -- but will the pipeline support storing and showing them, especially if they come quite late after the transaction finishes?
- Native support for background tasks like https://github.com/getsentry/sentry-python/issues/1473
- Wrap in a manual transaction
_Copied from https://linear.app/getsentry/issue/PY-2292/had-to-manually-create-a-transaction-to-see-agent-spans-when-using which didn't get synced to GH_
Contributor guide
Assessment
This issue has not been assessed yet.