mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-11 20:05:19 +00:00
refac: otel metrics handle 500
This commit is contained in:
parent
e66e0526ed
commit
b14617a653
1 changed files with 20 additions and 13 deletions
|
|
@ -163,7 +163,16 @@ def setup_metrics(app: FastAPI, resource: Resource) -> None:
|
|||
@app.middleware("http")
|
||||
async def _metrics_middleware(request: Request, call_next):
|
||||
start_time = time.perf_counter()
|
||||
|
||||
status_code = None
|
||||
try:
|
||||
response = await call_next(request)
|
||||
status_code = getattr(response, "status_code", 500)
|
||||
return response
|
||||
except Exception:
|
||||
status_code = 500
|
||||
raise
|
||||
finally:
|
||||
elapsed_ms = (time.perf_counter() - start_time) * 1000.0
|
||||
|
||||
# Route template e.g. "/items/{item_id}" instead of real path.
|
||||
|
|
@ -173,10 +182,8 @@ def setup_metrics(app: FastAPI, resource: Resource) -> None:
|
|||
attrs: Dict[str, str | int] = {
|
||||
"http.method": request.method,
|
||||
"http.route": route_path,
|
||||
"http.status_code": response.status_code,
|
||||
"http.status_code": status_code,
|
||||
}
|
||||
|
||||
request_counter.add(1, attrs)
|
||||
duration_histogram.record(elapsed_ms, attrs)
|
||||
|
||||
return response
|
||||
|
|
|
|||
Loading…
Reference in a new issue