Skip to content

Commit ebd77f2

Browse files
srothhsentrivana
andauthored
Update migration guide for async transport (#4732)
Update the migration guide for 3.0 to include information on the async transport and context manager --------- Co-authored-by: Ivana Kellyer <[email protected]>
1 parent f1850ce commit ebd77f2

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

MIGRATION_GUIDE.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,24 @@ Looking to upgrade from Sentry SDK 2.x to 3.x? Here's a comprehensive list of wh
88

99
- Added `add_attachment()` as a top level API, so you can do now: `sentry_sdk.add_attachment(...)` (up until now it was only available on the `Scope`)
1010
- Added a new SDK option `exclude_span_origins`. Spans with an `origin` from `exclude_span_origins` won't be created. This can be used for example in dual OpenTelemetry/Sentry setups to filter out spans from specific Sentry instrumentations. Note that using `exclude_span_origins` might potentially lead to surprising results: if, for example, a root span is excluded based on `origin`, all of its children will become root spans, unless they were started with `only_as_child_span=True`.
11+
- Added a new experimental async transport using the [httpcore](https://pypi.org/project/httpcore/) library. Requires the [httpcore[asyncio]](https://www.encode.io/httpcore/async/) extension. The async transport makes Sentry network I/O non-blocking in async programs. The async transport can only be used when an event loop is running, and additionally requires the [asyncio](https://docs.sentry.io/platforms/python/integrations/asyncio/) integration. Can be enabled by passing `transport_async=True` in the `_experiments` dict in `sentry.init()`. Try it out by initializing Sentry with:
12+
13+
```python
14+
import sentry_sdk
15+
from sentry_sdk.integrations.asyncio import AsyncioIntegration
16+
sentry_sdk.init(
17+
_experiments={
18+
"transport_async": True,
19+
},
20+
integrations=[
21+
AsyncioIntegration(),
22+
]
23+
)
24+
```
25+
26+
- Added an asynchronous context manager for spans. This can be used to remove unnecessary nesting for span creation in async programs.
27+
- Added `flush_async()` as a top level API. This has to be used when flushing the async transport. `flush_async` is a coroutine and can be awaited if blocking behaviour is desired.
28+
1129

1230
### Changed
1331

0 commit comments

Comments
 (0)