Skip to content

feat(transport): Add EnvelopePrinterTransport for debug logging#6181

Draft
ericapisani wants to merge 8 commits intomasterfrom
envelope-printer-transport-zcgvd
Draft

feat(transport): Add EnvelopePrinterTransport for debug logging#6181
ericapisani wants to merge 8 commits intomasterfrom
envelope-printer-transport-zcgvd

Conversation

@ericapisani
Copy link
Copy Markdown
Member

@ericapisani ericapisani commented May 1, 2026

Adds EnvelopePrinterTransport, a decorator transport that wraps the real transport and pretty-prints each envelope's headers and item payloads to the SDK debug logger before forwarding the envelope.

Enabled via SENTRY_PRINT_ENVELOPES=1 (also accepts true/yes). When unset or falsy, no wrapping occurs and there's no runtime cost. Useful for local debugging without having to run a local Sentry instance or intercept network traffic.

Fixes PY-2398
Fixes #6183

ericapisani and others added 2 commits May 1, 2026 10:38
Add a decorator transport that logs envelope contents via the SDK
debug logger before forwarding to the inner transport. Activated by
setting SENTRY_PRINT_ENVELOPES=1|true|yes.

Includes tests for delegation, logging behavior, make_transport
integration, and strict env var parsing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

Codecov Results 📊

13 passed | Total: 13 | Pass Rate: 100% | Execution Time: 7.38s

All tests are passing successfully.

❌ Patch coverage is 46.00%. Project has 14962 uncovered lines.

Files with missing lines (1)
File Patch % Lines
transport.py 25.48% ⚠️ 430 Missing and 7 partials

Generated by Codecov Action

@linear-code
Copy link
Copy Markdown

linear-code Bot commented May 1, 2026

@ericapisani
Copy link
Copy Markdown
Member Author

bugbot run

@ericapisani
Copy link
Copy Markdown
Member Author

@sentry review

Comment thread sentry_sdk/transport.py
Comment thread sentry_sdk/transport.py
Comment thread sentry_sdk/transport.py Outdated
…sport coverage

- Override __class__ to delegate to inner transport so isinstance checks
  (e.g. AsyncHttpTransport) remain transparent
- Add __getattr__ fallback for attributes not explicitly defined
- Return values from flush() and kill() so async tasks propagate
- Wrap transport in all make_transport paths (pre-instantiated, callable)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ericapisani
Copy link
Copy Markdown
Member Author

bugbot run

@ericapisani
Copy link
Copy Markdown
Member Author

@sentry review

Comment thread sentry_sdk/transport.py
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit f050b85. Configure here.

Comment thread sentry_sdk/transport.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add transport for pretty-printing envelope contents when debugging span-first logic

1 participant