OpenTelemetry Tortoise ORM Instrumentation¶
This library allows tracing queries made by tortoise ORM backends, mysql, postgres and sqlite.
Installation¶
pip install opentelemetry-instrumentation-tortoiseorm
References¶
Instrument tortoise-orm to report SQL queries.
Usage¶
from fastapi import FastAPI
from tortoise.contrib.fastapi import register_tortoise
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.instrumentation.tortoiseorm import TortoiseORMInstrumentor
app = FastAPI()
tracer = TracerProvider(resource=Resource({SERVICE_NAME: "FastAPI"}))
TortoiseORMInstrumentor().instrument(tracer_provider=tracer)
register_tortoise(
app,
db_url="sqlite://sample.db",
modules={"models": ["example_app.db_models"]}
)
API¶
- class opentelemetry.instrumentation.tortoiseorm.TortoiseORMInstrumentor(*args, **kwargs)[source]¶
Bases:
opentelemetry.instrumentation.instrumentor.BaseInstrumentor
An instrumentor for Tortoise-ORM See
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:
- 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.
- Return type