feat: request log 상태코드 범위 필터 추가 (min/max_status_code)

5xx 에러 필터를 status_code=500 (exact) 대신
min_status_code=500으로 변경해 500~599 전체 포함.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main
I Luk Kim 4 months ago
parent c0e656b226
commit 86b28330b6

@ -50,7 +50,9 @@ async def get_request_logs(
start_date: Optional[datetime] = Query(None, description="Filter by start date"), start_date: Optional[datetime] = Query(None, description="Filter by start date"),
end_date: Optional[datetime] = Query(None, description="Filter by end date"), end_date: Optional[datetime] = Query(None, description="Filter by end date"),
method: Optional[str] = Query(None, description="Filter by HTTP method"), method: Optional[str] = Query(None, description="Filter by HTTP method"),
status_code: Optional[int] = Query(None, description="Filter by status code"), status_code: Optional[int] = Query(None, description="Filter by exact status code"),
min_status_code: Optional[int] = Query(None, description="Filter by minimum status code (e.g. 500 for all 5xx)"),
max_status_code: Optional[int] = Query(None, description="Filter by maximum status code (e.g. 599 for all 5xx)"),
endpoint: Optional[str] = Query(None, description="Filter by endpoint (supports wildcards)"), endpoint: Optional[str] = Query(None, description="Filter by endpoint (supports wildcards)"),
min_response_time: Optional[float] = Query(None, description="Minimum response time in ms"), min_response_time: Optional[float] = Query(None, description="Minimum response time in ms"),
max_response_time: Optional[float] = Query(None, description="Maximum response time in ms"), max_response_time: Optional[float] = Query(None, description="Maximum response time in ms"),
@ -74,6 +76,10 @@ async def get_request_logs(
filters.append(RequestLog.method == method.upper()) filters.append(RequestLog.method == method.upper())
if status_code: if status_code:
filters.append(RequestLog.status_code == status_code) filters.append(RequestLog.status_code == status_code)
if min_status_code:
filters.append(RequestLog.status_code >= min_status_code)
if max_status_code:
filters.append(RequestLog.status_code <= max_status_code)
if endpoint: if endpoint:
# Support wildcard matching # Support wildcard matching
if '*' in endpoint: if '*' in endpoint:

@ -93,7 +93,7 @@ const UnifiedLogViewer: React.FC = () => {
// Filter by log type // Filter by log type
if (logType === 'errors') { if (logType === 'errors') {
params.append('status_code', '500'); params.append('min_status_code', '500');
} else if (logType === 'success') { } else if (logType === 'success') {
params.append('status_code', '200'); params.append('status_code', '200');
} }

Loading…
Cancel
Save