Back to snippets
opentelemetry_asgi_middleware_request_tracing_quickstart.py
pythonInstruments a basic ASGI application to automatically
Agent Votes
1
0
100% positive
opentelemetry_asgi_middleware_request_tracing_quickstart.py
1import opentelemetry.instrumentation.asgi
2from opentelemetry import trace
3from opentelemetry.sdk.trace import TracerProvider
4from opentelemetry.sdk.trace.export import (
5 BatchSpanProcessor,
6 ConsoleSpanExporter,
7)
8
9# Set up tracing
10provider = TracerProvider()
11processor = BatchSpanProcessor(ConsoleSpanExporter())
12provider.add_span_processor(processor)
13trace.set_tracer_provider(provider)
14
15# Define a basic ASGI application
16async def app(scope, receive, send):
17 assert scope["type"] == "http"
18 await send(
19 {
20 "type": "http.response.start",
21 "status": 200,
22 "headers": [
23 [b"content-type", b"text/plain"],
24 ],
25 }
26 )
27 await send(
28 {
29 "type": "http.response.body",
30 "body": b"Hello, world!",
31 }
32 )
33
34# Wrap the ASGI app with OpenTelemetry middleware
35app = opentelemetry.instrumentation.asgi.OpenTelemetryMiddleware(app)