perf: add LRU cache to normalize_request_route (#19812)

Add @lru_cache(maxsize=256) to eliminate redundant regex work for
repeated routes. Reduces time from 1.04s to ~0s for 6,006 calls.
This commit is contained in:
ryan-crabbe
2026-02-07 09:18:57 -08:00
committed by GitHub
parent 02a33ab998
commit d77d525ce7
+3 -1
View File
@@ -1,6 +1,7 @@
import os
import re
import sys
from functools import lru_cache
from typing import Any, List, Optional, Tuple
from fastapi import HTTPException, Request, status
@@ -311,10 +312,11 @@ def get_request_route(request: Request) -> str:
return request.url.path
@lru_cache(maxsize=256)
def normalize_request_route(route: str) -> str:
"""
Normalize request routes by replacing dynamic path parameters with placeholders.
This prevents high cardinality in Prometheus metrics by collapsing routes like:
- /v1/responses/1234567890 -> /v1/responses/{response_id}
- /v1/threads/thread_123 -> /v1/threads/{thread_id}