Skip to content

Commit c683026

Browse files
committed
feat: add example for aiohttp
1 parent 668f974 commit c683026

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

examples/aiohttp_app.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import asyncio
2+
import logging
3+
from datetime import datetime, timezone
4+
5+
from aiohttp.web import Application, Request, Response, run_app
6+
from opentelemetry import trace
7+
from opentelemetry.sdk.resources import Resource
8+
from opentelemetry.sdk.trace import TracerProvider
9+
10+
from asgi_monitor.integrations.aiohttp import MetricsConfig, TracingConfig, setup_metrics, setup_tracing
11+
from asgi_monitor.logging import configure_logging
12+
13+
logger = logging.getLogger(__name__)
14+
15+
16+
async def index(requests: Request) -> Response:
17+
logger.info("Start sleeping at %s", datetime.now(tz=timezone.utc))
18+
await asyncio.sleep(1)
19+
logger.info("Stopped sleeping at %s", datetime.now(tz=timezone.utc))
20+
return Response(text="OK")
21+
22+
23+
def create_app() -> Application:
24+
configure_logging(json_format=True, include_trace=False)
25+
26+
app = Application()
27+
app.router.add_get("/", index)
28+
29+
resource = Resource.create(
30+
attributes={
31+
"service.name": "fastapi",
32+
},
33+
)
34+
tracer_provider = TracerProvider(resource=resource)
35+
trace.set_tracer_provider(tracer_provider)
36+
37+
trace_config = TracingConfig(tracer_provider=tracer_provider)
38+
metrics_config = MetricsConfig(app_name="fastapi", include_trace_exemplar=True)
39+
40+
setup_metrics(app=app, config=metrics_config)
41+
setup_tracing(app=app, config=trace_config)
42+
43+
return app
44+
45+
46+
if __name__ == "__main__":
47+
app = create_app()
48+
run_app(app=app, host="127.0.0.1", port=8000)

src/asgi_monitor/integrations/aiohttp.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,6 @@ def build_tracing_middleware(config: TracingConfig) -> Callable[..., Coroutine]:
217217
@middleware
218218
async def tracing_middleware(request: Request, handler: Callable) -> Any:
219219
span_name, additional_attributes = config.scope_span_details_extractor(request)
220-
221220
req_attrs = collect_request_attributes(request)
222221
duration_attrs = _parse_duration_attrs(req_attrs)
223222
active_requests_count_attrs = _parse_active_request_count_attrs(req_attrs)

0 commit comments

Comments
 (0)