Integrations

Sentry provides additional integrations designed to change configuration or add instrumentation to your application.

The Sentry SDK uses integrations to hook into the functionality of popular libraries to automatically instrument your application and give you the best data out of the box.

Auto-enabled
python.django iconDjango
python.flask iconFlask
python.fastapi iconFastAPI
python.aiohttp iconAIOHTTP
python.bottle iconBottle
python.falcon iconFalcon
python.pyramid iconPyramid
python.quart iconQuart
python.sanic iconSanic
python.starlette iconStarlette
python.starlite iconStarlite
python.tornado iconTornado

Auto-enabled
python.asyncpg iconasyncpg
python.clickhouse-driver iconClickHouse
python.pymongo iconMongoDB
python.redis iconRedis
python.sqlalchemy iconSQLAlchemy

Auto-enabled
anthropic iconAnthropic
huggingface iconHuggingface Hub
langchain iconLangchain
openai iconOpenAI

Auto-enabled
python.airflow iconApache Airflow
python.beam iconApache Beam
python.spark iconApache Spark
python.arq iconARQ
python.celery iconCelery
python.huey iconhuey
python.rq iconRQ

Auto-enabled
python.awslambda iconAWS Lambda
python.boto3 iconBoto3
python.chalice iconChalice
python.cloudresourcecontext iconCloud Resource Context
python.gcpfunctions iconGoogle Cloud Functions
python.serverless iconServerless Framework

Auto-enabled
python.aiohttp iconAIOHTTP
python.httpx iconHTTPX
Python standard HTTP client (in the Default Integrations)
Requests HTTP instrumentation is done via the Default Integrations.

Auto-enabled
python.ariadne iconAriadne
python.gql iconGQL
python.graphene iconGraphene
python.strawberry iconStrawberry

Auto-enabled
python.grpc icongRPC

Auto-enabled
python.logging iconLogging
python.loguru iconLoguru

Auto-enabled
python.asgi iconASGI
python.asyncio iconasyncio
python.pure_eval iconEnhanced Locals
python.gnu_backtrace iconGNU Backtrace
python.socket iconSocket
python.tryton iconTryton
python.wsgi iconWSGI

Integration
Argv
Atexit
Excepthook
Deduplication
Stdlib
Modules
Logging
Threading

Integrations can be added using the integrations config option.

Integrations marked as "auto-enabled" in the above table will be turned on automatically, unless you set auto_enabling_integrations to False. If you want to configure a specific integration's settings (for instance, change Flask's default transaction_style), add it to your integrations list as you would a non-auto-enabling integration and pass in the desired options.

Copied
import sentry_sdk
from sentry_sdk.integrations.asyncio import AsyncioIntegration
from sentry_sdk.integrations.flask import FlaskIntegration

sentry_sdk.init(
    integrations=[
        # The Flask integration is auto-enabling, but we want to change
        # transaction_style from the default "endpoint" to "url"
        FlaskIntegration(transaction_style="url"),
        # The asyncio integration is not enabled automatically
        # and needs to be added manually.
        AsyncioIntegration(),
    ],
)

There are two types of integrations that are added automatically:

  • Default integrations like logging or excepthook are always enabled, regardless of what packages you have installed, as long as the default_integrations option is True (default). They provide essential SDK functionality like error deduplication or event flushing at interpreter shutdown.
  • Auto-enabling integrations like FlaskIntegration are automatically added if the SDK detects you have the corresponding package (like Flask) installed. This happens as long as the auto_enabling_integrations option is set to True (default).

To disable a specific auto-enabling integration, first disable all auto-enabling integrations by setting the auto_enabling_integrations option to False. Then, explicitly enable all the auto-enabling integrations you wish to use by setting the integrations configuration option.

Copied
import sentry_sdk
from sentry_sdk.integrations.flask import FlaskIntegration

sentry_sdk.init(
    # Turn off all auto-enabling integrations except for Flask
    auto_enabling_integrations=False,
    integrations=[
        FlaskIntegration(),
    ],
)

To disable one of the default integrations, set default_integrations to False. Note that this disables all automatically added integrations, both default and auto-enabling. Any integrations you want to use then have to be manually specified via the integrations config option.

Copied
import sentry_sdk
from sentry_sdk.integrations.atexit import AtexitIntegration
from sentry_sdk.integrations.argv import ArgvIntegration
from sentry_sdk.integrations.dedupe import DedupeIntegration
from sentry_sdk.integrations.excepthook import ExcepthookIntegration
from sentry_sdk.integrations.stdlib import StdlibIntegration
from sentry_sdk.integrations.modules import ModulesIntegration
from sentry_sdk.integrations.threading import ThreadingIntegration

sentry_sdk.init(
    # Turn off the default logging integration, but keep the rest.
    default_integrations=False,
    integrations=[
        AtexitIntegration(),
        ArgvIntegration(),
        DedupeIntegration(),
        ExcepthookIntegration(),
        StdlibIntegration(),
        ModulesIntegration(),
        ThreadingIntegration(),
    ],
)
Help improve this content
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").