OpenTelemetry asyncpg Instrumentation
Module contents
This library allows tracing PostgreSQL queries made by the asyncpg library.
Usage
Start PostgreSQL:
docker run -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_DATABASE=database -p 5432:5432 postgres
Run instrumented code:
import asyncio
import asyncpg
from opentelemetry.instrumentation.asyncpg import AsyncPGInstrumentor
# You can optionally pass a custom TracerProvider to AsyncPGInstrumentor.instrument()
AsyncPGInstrumentor().instrument()
async def main():
conn = await asyncpg.connect(user='user', password='password')
await conn.fetch('''SELECT 42;''')
await conn.close()
asyncio.run(main())
API
- class opentelemetry.instrumentation.asyncpg.AsyncPGInstrumentor(*args, **kwargs)[source]
Bases:
BaseInstrumentor
- instrumentation_dependencies()[source]
Return a list of python packages with versions that the will be instrumented.
The format should be the same as used in requirements.txt or pyproject.toml.
For example, if an instrumentation instruments requests 1.x, this method should look like: :rtype:
Collection
[str
]- def instrumentation_dependencies(self) -> Collection[str]:
return [‘requests ~= 1.0’]
This will ensure that the instrumentation will only be used when the specified library is present in the environment.