A transport for the Sentry Python SDK which supports Python 3's asyncio interface. For more information about Sentry and the python SDK, see our Python Documentation for framework integrations and other goodies.
- raven-python>=5.4.0
- python>=3.4.2
- aiohttp>=2.0
raven-aiohttp ships two asyncio based transports for raven.Client: AioHttpTransport and QueuedAioHttpTransport.
All messages to the sentry server will be produced by "Fire And Forget"
Each new message spawns it owns asyncio.Task, amount of them is not limited
import asyncio
from raven import Client
from raven_aiohttp import AioHttpTransport
client = Client(transport=AioHttpTransport)
try:
1 / 0
except ZeroDivisionError:
client.captureException()
# graceful shutdown waits until all pending messages are send
loop = asyncio.get_event_loop()
loop.run_until_complete(client.remote.get_transport().close())
All messages to the sentry server will be produced by queue system
When transport is created it spawns limited amount of asyncio.Task which sends messages one by one from internal asyncio.Queue
import asyncio
from functools import partial
from raven import Client
from raven_aiohttp import QueuedAioHttpTransport
client = Client(transport=partial(QueuedAioHttpTransport, workers=5, qsize=1000))
try:
1 / 0
except ZeroDivisionError:
client.captureException()
# graceful shutdown waits until internal queue is empty
loop = asyncio.get_event_loop()
loop.run_until_complete(client.remote.get_transport().close())
- Sentry
- Python Documentation
- Issue Tracker
- IRC Channel (irc.freenode.net, #sentry)