MCPcopy
hub / github.com/OpenBMB/ChatDev / correlation_id_middleware

Function correlation_id_middleware

utils/middleware.py:16–47  ·  view source on GitHub ↗

Add correlation ID to requests for tracing.

(request: Request, call_next: Callable)

Source from the content-addressed store, hash-verified

14
15
16async def correlation_id_middleware(request: Request, call_next: Callable):
17 """Add correlation ID to requests for tracing."""
18 correlation_id = request.headers.get("X-Correlation-ID") or str(uuid.uuid4())
19 request.state.correlation_id = correlation_id
20
21 start_time = time.time()
22 response = await call_next(request)
23 duration = time.time() - start_time
24
25 # Log the request and response
26 logger = get_server_logger()
27 logger.log_request(
28 request.method,
29 str(request.url),
30 correlation_id=correlation_id,
31 path=request.url.path,
32 query_params=dict(request.query_params),
33 client_host=request.client.host if request.client else None,
34 user_agent=request.headers.get("user-agent")
35 )
36
37 logger.log_response(
38 response.status_code,
39 duration,
40 correlation_id=correlation_id,
41 content_length=response.headers.get("content-length")
42 )
43
44 # Add correlation ID to response headers
45 response.headers["X-Correlation-ID"] = correlation_id
46
47 return response
48
49
50async def security_middleware(request: Request, call_next: Callable):

Callers

nothing calls this directly

Calls 4

get_server_loggerFunction · 0.90
log_requestMethod · 0.80
log_responseMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected