상태 JSON 파일의 워커 ID를 업데이트하고, API 요청 통계를 초기화하였습니다. 에러 응답에서 메타 정보를 제거하고, 대시보드에서 API 통계 관련 HTML 구조를 개선하였습니다. 서버 로그에서 프로세스 ID 변경 사항을 반영하였습니다.

This commit is contained in:
vast 2025-10-01 07:26:28 +00:00
parent 685acd7766
commit 01f96a2659
8 changed files with 10403 additions and 5475 deletions

View File

@ -302,11 +302,7 @@ async def inpaint_image(
endpoint="/api/v1/inpaint",
success=False,
response_time=processing_time * 1000,
error=str(e),
meta={
"model": model_name if 'model_name' in locals() else None,
"details": "inpaint exception",
}
error=str(e)
)
# 응답 형식에 따라 적절한 에러 응답 생성
@ -410,11 +406,7 @@ async def remove_background(
endpoint="/api/v1/remove_bg",
success=False,
response_time=processing_time * 1000,
error=str(e),
meta={
"model": model_name if 'model_name' in locals() else None,
"details": "remove_bg exception",
}
error=str(e)
)
# 응답 형식에 따라 적절한 에러 응답 생성

View File

@ -385,7 +385,7 @@ class MonitoringData:
return alerts
def update_api_stats(self, endpoint: str, success: bool, response_time: float, error: str = None, meta: dict | None = None):
def update_api_stats(self, endpoint: str, success: bool, response_time: float, error: str = None):
"""API 통계를 업데이트합니다."""
self.api_stats["total_requests"] += 1
@ -397,8 +397,7 @@ class MonitoringData:
self.api_stats["errors"].append({
"timestamp": datetime.now().isoformat(),
"endpoint": endpoint,
"error": error,
"meta": meta or {}
"error": error
})
# 엔드포인트별 사용량
@ -770,16 +769,22 @@ HTML_TEMPLATE = """
</div>
<div class="card">
<div class="card-header">📊 API 통계</div>
<div class="metrics-grid">
<div class="metric"><span class="metric-label"> 요청:</span><span class="metric-value" id="total-requests">-</span></div>
<div class="metric"><span class="metric-label">성공률:</span><span class="metric-value" id="success-rate">-</span></div>
<div class="metric"><span class="metric-label">평균 응답시간:</span><span class="metric-value" id="avg-response-time">-</span></div>
<div class="metric">
<span class="metric-label">에러 :</span>
<span class="metric-value" id="error-count">-</span>
<button id="btn-view-errors" style="margin-left:8px;padding:4px 8px;">에러 상세</button>
</div>
<h3>📊 API 통계</h3>
<div class="metric">
<span class="metric-label"> 요청:</span>
<span class="metric-value" id="total-requests">-</span>
</div>
<div class="metric">
<span class="metric-label">성공률:</span>
<span class="metric-value" id="success-rate">-</span>
</div>
<div class="metric">
<span class="metric-label">평균 응답시간:</span>
<span class="metric-value" id="avg-response-time">-</span>
</div>
<div class="metric">
<span class="metric-label">에러 :</span>
<span class="metric-value" id="error-count">-</span>
</div>
</div>
</div>
@ -1605,65 +1610,8 @@ HTML_TEMPLATE = """
setInterval(refreshPerformanceStats, 30000);
setInterval(refreshModelUsageStats, 15000); // 15초마다
setInterval(refreshSystemAlerts, 10000); // 10초마다
const btnViewErrors = document.getElementById('btn-view-errors');
const errorModal = document.getElementById('error-modal');
const errorModalClose = document.getElementById('error-modal-close');
const errorList = document.getElementById('error-list');
function renderErrors(errors) {
if (!errors || errors.length === 0) {
errorList.innerHTML = '<div style="color:#666;">최근 에러가 없습니다.</div>';
return;
}
const html = errors.map((e, idx) => {
const meta = e.meta || {};
const endpoint = e.endpoint || '-';
const ts = e.timestamp || '-';
const errMsg = e.error || '-';
const model = meta.model || '-';
const detail = meta.details || '-';
return `
<div style="padding:10px; border-bottom:1px solid #e5e7eb;">
<div><strong>#${idx+1}</strong> <span style="color:#555;">${ts}</span></div>
<div><strong>Endpoint:</strong> ${endpoint}</div>
<div><strong>Model:</strong> ${model}</div>
<div><strong>Reason:</strong> ${detail}</div>
<div><strong>Error:</strong> <code>${escapeHtml(errMsg)}</code></div>
</div>`;
}).join('');
errorList.innerHTML = html;
}
function escapeHtml(str) {
return (str || '').replace(/[&<>"']/g, function(m) {
return ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;','\'':'&#39;'}[m]);
});
}
function openErrorModal() {
fetch('/api/errors')
.then(r => r.json())
.then(data => renderErrors(data.errors || []))
.catch(() => { errorList.innerHTML = '<div style="color:#dc3545;">에러 목록을 불러오지 못했습니다.</div>'; })
.finally(() => { errorModal.style.display = 'block'; });
}
btnViewErrors?.addEventListener('click', openErrorModal);
errorModalClose?.addEventListener('click', () => errorModal.style.display = 'none');
errorModal.addEventListener('click', (e) => { if (e.target === errorModal) errorModal.style.display = 'none'; });
});
</script>
<div id="error-modal" style="display:none; position:fixed; left:0; top:0; width:100%; height:100%; background: rgba(0,0,0,0.4); z-index:9999;">
<div style="background:#fff; width:80%; max-width:900px; margin:60px auto; padding:20px; border-radius:8px;">
<div style="display:flex; justify-content:space-between; align-items:center;">
<h3 style="margin:0;">최근 API 에러</h3>
<button id="error-modal-close">닫기</button>
</div>
<div id="error-list" style="margin-top:12px; max-height:60vh; overflow:auto; font-family:monospace; font-size:13px; background:#f8f9fa; padding:10px; border-radius:6px;"></div>
</div>
</div>
</body>
</html>
"""
@ -1878,15 +1826,6 @@ async def get_performance_stats():
logger.error(f"성능 통계 조회 실패: {e}")
return {"stats": {}, "error": str(e)}
@api_router.get("/errors", summary="최근 API 에러 목록")
def get_recent_errors(limit: int = 20):
try:
errors = monitoring_data.api_stats.get("errors", [])
return {"errors": errors[-limit:]}
except Exception as e:
logger.error(f"에러 목록 조회 실패: {e}")
return {"errors": [], "error": str(e)}
# 테스트용 엔드포인트
@api_router.get("/system-alerts")
async def get_system_alerts():

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
16093
181051

View File

@ -1,397 +1,34 @@
WARNING:root:jtop library not found. Jetson monitoring will be limited. Please run 'sudo pip install jetson-stats'
INFO: Started server process [16259]
INFO: Started server process [181223]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8888 (Press CTRL+C to quit)
INFO: 127.0.0.1:55412 - "GET /api/simple HTTP/1.1" 200 OK
INFO: 122.35.47.45:53200 - "GET / HTTP/1.1" 200 OK
INFO: 122.35.47.45:53202 - "WebSocket /ws" [accepted]
INFO: 122.35.47.45:60427 - "GET / HTTP/1.1" 200 OK
INFO: 122.35.47.45:60430 - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 122.35.47.45:53200 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53201 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53203 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53204 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53222 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53222 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53222 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53242 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53241 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53243 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53240 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53249 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53249 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53249 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53256 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53257 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53255 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53258 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53275 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53275 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53275 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53293 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53294 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53291 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53292 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53299 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53299 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53299 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53312 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53311 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53310 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53313 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53365 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53364 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53376 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53377 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53424 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53423 - "GET /api/performance-stats HTTP/1.1" 200 OK
ERROR:app.monitoring.dashboard:모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Read timed out. (read timeout=2)
ERROR:app.monitoring.dashboard:모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Read timed out. (read timeout=2)
INFO: 122.35.47.45:53473 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53470 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53471 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53472 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53534 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53535 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53533 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53536 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53550 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53548 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53549 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53551 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53561 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53561 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53561 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53570 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53568 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53569 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53571 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53589 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53589 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53589 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53634 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53631 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53633 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53632 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53646 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53646 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53646 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53677 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53679 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53678 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53676 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53684 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53684 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53684 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53711 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53714 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53712 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53713 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53725 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53725 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53725 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53753 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53756 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53755 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53754 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53772 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53772 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53772 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53806 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53805 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53807 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53804 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53816 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53816 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53816 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53838 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53839 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53840 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53837 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53842 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53842 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53842 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53871 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53873 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53872 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53874 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53885 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53885 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53885 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53893 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53892 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53895 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53894 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53905 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53905 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53905 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53948 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53949 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53950 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53947 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53993 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:53994 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:53995 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:53996 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54064 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54065 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54063 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54066 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54063 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54066 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54065 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54077 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54094 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54094 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54094 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54120 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54118 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54121 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54119 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54124 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54124 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54124 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54159 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54158 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54160 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54161 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54182 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54182 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54182 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54243 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54244 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54241 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54242 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54267 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54267 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54267 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54297 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54298 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54296 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54299 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54322 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54322 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54322 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54368 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54366 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54365 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54367 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54385 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54385 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54400 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54420 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54421 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54419 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54422 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54441 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54441 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54441 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54468 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54467 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54470 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54469 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54487 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54522 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54520 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54517 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54521 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54611 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54612 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54613 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54614 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54684 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54681 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54683 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54682 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54709 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54710 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54737 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54736 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54738 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54735 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54745 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54745 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54745 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54772 - "GET / HTTP/1.1" 200 OK
INFO: 122.35.47.45:60427 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:60428 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:60433 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:60434 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 127.0.0.1:42786 - "GET /api/simple HTTP/1.1" 200 OK
INFO: 122.35.47.45:60441 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:60441 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:60441 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:60460 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:60457 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:60458 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:60459 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:60472 - "GET /api/system-alerts HTTP/1.1" 200 OK
ERROR:app.monitoring.dashboard:모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Max retries exceeded with url: /api/v1/stats (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7feae88ed240>: Failed to establish a new connection: [Errno 111] Connection refused'))
INFO: 122.35.47.45:60472 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
ERROR:app.monitoring.dashboard:모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Max retries exceeded with url: /api/v1/stats (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7feae88ec2e0>: Failed to establish a new connection: [Errno 111] Connection refused'))
ERROR:app.monitoring.dashboard:모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Max retries exceeded with url: /api/v1/stats (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7feae88ed9f0>: Failed to establish a new connection: [Errno 111] Connection refused'))
ERROR:app.monitoring.dashboard:모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Max retries exceeded with url: /api/v1/stats (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7feae88ecbe0>: Failed to establish a new connection: [Errno 111] Connection refused'))
INFO: Shutting down
INFO: connection closed
INFO: 122.35.47.45:54785 - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 122.35.47.45:54772 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54745 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: Waiting for background tasks to complete. (CTRL+C to force quit)
ERROR:app.monitoring.dashboard:모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Max retries exceeded with url: /api/v1/stats (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7feae88ec970>: Failed to establish a new connection: [Errno 111] Connection refused'))
ERROR:app.monitoring.dashboard:데이터 전송 오류:
INFO: 122.35.47.45:54787 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54786 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54819 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54819 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54841 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54852 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54851 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54850 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54853 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54861 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54861 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54861 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54886 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54885 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54884 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54883 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54890 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54890 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54890 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54935 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:54937 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54934 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54936 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54959 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:54959 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:54959 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55018 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55016 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55017 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55019 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55033 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55033 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55033 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55074 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55075 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55152 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55151 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55167 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55166 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55150 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55261 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55263 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55262 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55375 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55370 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55372 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55371 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55468 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55471 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55472 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55467 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55585 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55587 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55586 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55588 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55646 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55647 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55645 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55648 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55648 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55688 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55691 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55689 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55690 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55696 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55696 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55696 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55746 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55745 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55744 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55743 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55757 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55757 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55757 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55800 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55801 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55799 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55802 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55802 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55802 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55802 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55877 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55878 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55879 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55876 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55901 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55901 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55901 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55956 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:55958 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55955 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:55957 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:55974 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56080 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56081 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56079 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56078 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56154 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56156 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56155 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56157 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56251 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56250 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56249 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56248 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56349 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56350 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56351 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56348 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56435 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56434 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56438 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56433 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56522 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56520 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56521 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56519 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56519 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56519 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56519 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56558 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56560 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56557 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56559 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56582 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56582 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56582 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56603 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56604 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56602 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56605 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56622 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56622 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56622 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56654 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56652 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56655 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56653 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56675 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56675 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56675 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56705 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56704 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56702 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56703 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56711 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56711 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56711 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56751 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56749 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56752 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56750 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56801 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56798 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56799 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56800 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56798 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56798 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56835 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56836 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56837 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56838 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56876 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56876 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56876 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56943 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:56945 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56942 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56944 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56972 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:56972 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:56972 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:57032 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 122.35.47.45:57031 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 122.35.47.45:57034 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 122.35.47.45:57033 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: Waiting for application shutdown.
INFO: Application shutdown complete.
INFO: Finished server process [181223]

View File

@ -1 +1 @@
16259
181223

View File

@ -6,14 +6,14 @@
"workers_by_status": {
"idle": [
{
"id": "worker_ee896b41",
"id": "worker_102e7692",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_5e530626",
"id": "worker_e36b0a34",
"status": "idle",
"task_count": 0,
"error_count": 0,
@ -50,62 +50,42 @@
}
},
"api_stats": {
"total_requests": 474,
"successful_requests": 472,
"failed_requests": 2,
"success_rate": 99.57805907172997,
"endpoint_usage": {
"POST /api/v1/remove_bg": 10,
"GET /health": 2,
"GET /api/v1/model": 231,
"POST /api/v1/inpaint": 218,
"POST /api/v1/run_plugin_gen_image": 13
},
"total_requests": 0,
"successful_requests": 0,
"failed_requests": 0,
"success_rate": 0.0,
"endpoint_usage": {},
"endpoint_stats": {
"POST /api/v1/remove_bg": {
"count": 10,
"avg_time": 1.089443039894104,
"min_time": 0.24539661407470703,
"max_time": 8.455913782119751,
"current_concurrent": 0
},
"GET /health": {
"count": 2,
"avg_time": 0.0009462833404541016,
"min_time": 0.0008435249328613281,
"max_time": 0.001049041748046875,
"current_concurrent": 0
},
"GET /api/v1/model": {
"count": 231,
"avg_time": 0.0010395026206970214,
"min_time": 0.0006670951843261719,
"max_time": 0.002028226852416992,
"current_concurrent": 0
},
"POST /api/v1/inpaint": {
"count": 218,
"avg_time": 1.0618626737594605,
"min_time": 0.39063143730163574,
"max_time": 12.307374477386475,
"count": 0,
"avg_time": 0.0,
"min_time": 0.0,
"max_time": 0.0,
"current_concurrent": 0
},
"POST /api/v1/remove_bg": {
"count": 0,
"avg_time": 0.0,
"min_time": 0.0,
"max_time": 0.0,
"current_concurrent": 0
},
"POST /api/v1/run_plugin_gen_image": {
"count": 13,
"avg_time": 0.3911778743450458,
"min_time": 0.21323299407958984,
"max_time": 0.8447999954223633,
"count": 0,
"avg_time": 0.0,
"min_time": 0.0,
"max_time": 0.0,
"current_concurrent": 0
}
},
"average_response_time": 0.5150952565519116,
"min_response_time": 0.0006670951843261719,
"max_response_time": 13.827012777328491,
"average_response_time": 0,
"min_response_time": 0,
"max_response_time": 0,
"current_concurrent": 0,
"max_concurrent": 1,
"requests_per_second": 0.19480259921631837,
"uptime": 2433.2324204444885,
"max_concurrent": 0,
"requests_per_second": 0.0,
"uptime": 55.028260707855225,
"recent_errors": []
},
"timestamp": 1759243888.4610977
"timestamp": 1759303574.1276805
}