Automatic Instrumentation
Learn what instrumentation automatically captures transactions.
Many integrations for popular frameworks automatically capture transactions (or service spans in stream mode). If you already have any of the following frameworks set up for Sentry error reporting, you will start to see traces immediately:
- All WSGI-based web frameworks (Django, Flask, Pyramid, Falcon, Bottle)
- Celery
- AIOHTTP web apps
- Redis Queue (RQ)
See the full list of available integrations.
Spans are instrumented for the following operations within a transaction/service span:
- Database queries that use SQLAlchemy or the Django ORM
- HTTP requests made with HTTPX, requests, the stdlib, AIOHTTP, or pyreqwest
- Spawned subprocesses
- Redis operations
In transaction mode, spans are only created within an existing transaction. If you're not using any of the supported frameworks, you'll need to create transactions manually.
Stream mode removes this limitation. Since there are no transactions, any span started without a parent is automatically promoted to a service span (the equivalent of a transaction). You can also force any span to become a service span when starting it by setting its parent to None. See Custom Instrumentation to learn more.
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").