henry3260 commented on code in PR #64523:
URL: https://github.com/apache/airflow/pull/64523#discussion_r3069085615


##########
airflow-core/src/airflow/api_fastapi/common/http_access_log.py:
##########
@@ -23,13 +23,87 @@
 from typing import TYPE_CHECKING
 
 import structlog
+from starlette.routing import Match
+
+from airflow._shared.observability.metrics.stats import Stats
 
 if TYPE_CHECKING:
     from starlette.types import ASGIApp, Message, Receive, Scope, Send
 
 logger = structlog.get_logger(logger_name="http.access")
 
 _HEALTH_PATHS = frozenset(["/api/v2/monitor/health"])
+_API_PATH_PREFIX_TO_SURFACE = (
+    ("/api/v2", "public"),
+    ("/ui", "ui"),
+)
+
+
+def _get_api_surface(path: str) -> str | None:
+    for prefix, surface in _API_PATH_PREFIX_TO_SURFACE:
+        if path == prefix or path.startswith(f"{prefix}/"):
+            return surface
+    return None
+
+
+def _get_status_family(status_code: int) -> str:
+    if status_code < 100:
+        return "unknown"
+    return f"{status_code // 100}xx"

Review Comment:
   > HTTP status codes are always 100-599. A status code < 100 can only happen 
if response was None and status fell through as 0. The middleware already 
handles this: status = response["status"] if response is not None else 0. 
Consider handling the 0 case explicitly (e.g., "0xx" or "no_response") rather 
than "unknown", which is ambiguous.
   
   Agree!



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to