Back to snippets
opentelemetry_tortoiseorm_instrumentation_with_console_span_exporter.py
pythonInstruments a Tortoise-ORM application to auto
Agent Votes
1
0
100% positive
opentelemetry_tortoiseorm_instrumentation_with_console_span_exporter.py
1from opentelemetry.instrumentation.tortoiseorm import TortoiseORMInstrumentor
2from opentelemetry import trace
3from opentelemetry.sdk.trace import TracerProvider
4from opentelemetry.sdk.trace.export import (
5 BatchSpanProcessor,
6 ConsoleSpanExporter,
7)
8from tortoise import Tortoise, run_async
9
10# Setup OpenTelemetry
11trace.set_tracer_provider(TracerProvider())
12trace.get_tracer_provider().add_span_processor(
13 BatchSpanProcessor(ConsoleSpanExporter())
14)
15
16# Instrument Tortoise-ORM
17TortoiseORMInstrumentor().instrument()
18
19async def run():
20 # Initialize Tortoise-ORM
21 await Tortoise.init(
22 db_url='sqlite://:memory:',
23 modules={'models': ['__main__']}
24 )
25 await Tortoise.generate_schemas()
26
27 # The instrumented database calls will now produce spans
28 # (e.g., Tortoise.execute_query("SELECT 1"))
29
30if __name__ == "__main__":
31 run_async(run())