asyncpg
Learn about importing the asyncpg integration and how it captures queries from asyncpg.
The AsyncPGIntegration captures queries from asyncpg, which can be viewed in Sentry's Performance page.
Install sentry-sdk from PyPI:
Copied
pip install sentry-sdk
If you have the asyncpg package in your dependencies, the asyncpg integration will be enabled automatically when you initialize the Sentry SDK.
Copied
import sentry_sdk
sentry_sdk.init(
dsn="___PUBLIC_DSN___",
# Add data like request headers and IP for users, if applicable;
# see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more info
send_default_pii=True,
# ___PRODUCT_OPTION_START___ performance
# Set traces_sample_rate to 1.0 to capture 100%
# of transactions for tracing.
traces_sample_rate=1.0,
# ___PRODUCT_OPTION_END___ performance
# ___PRODUCT_OPTION_START___ profiling
# To collect profiles for all profile sessions,
# set `profile_session_sample_rate` to 1.0.
profile_session_sample_rate=1.0,
# Profiles will be automatically collected while
# there is an active span.
profile_lifecycle="trace",
# ___PRODUCT_OPTION_END___ profiling
# ___PRODUCT_OPTION_START___ logs
# Enable logs to be sent to Sentry
enable_logs=True,
# ___PRODUCT_OPTION_END___ logs
)
Copied
import asyncpg
async def main():
sentry_sdk.init(...) # same as above
with sentry_sdk.start_transaction(name="testing_sentry"):
conn = await asyncpg.connect(DATABASE_URL)
await conn.fetch("SELECT * FROM pg_catalog.pg_tables;")
await conn.close()
asyncio.run(main())
This will create a transaction called testing_sentry in the Performance section of sentry.io, and create spans for the connect and the SELECT operations.
It takes a couple of moments for the data to appear in sentry.io.
- asyncpg: 0.23+
- Python: 3.7+
Was this helpful?
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").
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").