상태 JSON 파일의 워커 ID를 업데이트하고, API 요청 통계 및 성공률을 수정하였습니다. 세션 풀 관리 로직을 개선하여 유휴 세션을 주기적으로 제거하도록 하였으며, VRAM 사용량 로깅 기능을 추가하였습니다. GPU 메모리 정보를 가져오는 로직을 개선하고, 로그 파일에 서버 프로세스 ID 변경 사항을 반영하였습니다.

This commit is contained in:
AGX 2025-08-30 09:00:50 +09:00
parent 0467871e5b
commit 9aa46fac13
9 changed files with 1590 additions and 262 deletions

View File

@ -10,10 +10,12 @@ from typing import Dict, List, Optional, Any, Tuple
from enum import Enum
from dataclasses import dataclass
from contextlib import asynccontextmanager
from collections import defaultdict
from ..core.config import settings
from ..utils.gpu_monitor import gpu_monitor
logger = logging.getLogger(__name__)
@ -61,7 +63,6 @@ class SessionPool:
for model_type, (min_sessions, _) in self.model_configs.items():
if min_sessions > 0:
logger.info(f"Pre-loading {min_sessions} sessions for {model_type.value}")
# Use asyncio.gather for concurrent session creation
tasks = [
self._create_session(model_type, f"{model_type.value}_{i}")
for i in range(min_sessions)
@ -78,46 +79,33 @@ class SessionPool:
self._initialized = True
# 유휴 세션 제거 작업 시작
if settings.SESSION_IDLE_TIMEOUT > 0:
self._reaper_task = asyncio.create_task(self._reap_idle_sessions())
self._reaper_task = asyncio.create_task(self._reap_idle_sessions_task())
logger.info("Session pools initialized successfully")
async def _reap_idle_sessions(self):
"""유휴 세션을 주기적으로 제거하는 백그라운드 작업."""
logger.info(f"Idle session reaper started. Timeout: {settings.SESSION_IDLE_TIMEOUT}s, Check Interval: 60s")
while True:
await asyncio.sleep(60) # 1분마다 체크
def _log_pool_status(self, event: str, model_type: str = "", reaped_info: str = ""):
try:
gpu_info = gpu_monitor.get_gpu_memory_info()
if not gpu_info or 'used' not in gpu_info:
vram_usage = "VRAM: N/A"
else:
vram_usage = f"VRAM: {(gpu_info['used'] / 1024):.1f}/{(gpu_info['total'] / 1024):.1f} GB ({gpu_info['usage_percent']:.1f}%)"
for model_type, pool in self.pools.items():
min_sessions, _ = self.model_configs[model_type]
async with self.conditions[model_type]:
if len(pool) <= min_sessions:
continue
# 사용 중이 아니고, 타임아웃이 지난 세션을 찾음
idle_sessions = [s for s in pool if s.is_idle(settings.SESSION_IDLE_TIMEOUT)]
# 제거할 세션 수 결정 (min_sessions 이하로는 줄이지 않음)
num_to_reap = min(len(idle_sessions), len(pool) - min_sessions)
if num_to_reap > 0:
sessions_to_reap = idle_sessions[:num_to_reap]
logger.info(f"Reaping {len(sessions_to_reap)} idle session(s) for {model_type.value}. Current pool size: {len(pool)}, Min size: {min_sessions}")
for session in sessions_to_reap:
pool.remove(session)
# 명시적으로 모델 객체를 삭제하여 GC가 메모리를 회수하도록 유도
del session.model
del session
# Notify any waiting tasks that pool state has changed
self.conditions[model_type].notify_all()
session_counts = ", ".join([f"{mt.value}: {len(p)}" for mt, p in self.pools.items()])
if event == "create":
log_message = f" Session Created ({model_type}). Status -> {session_counts} | {vram_usage}"
elif event == "reap":
log_message = f" Session Reaped ({reaped_info}). Status -> {session_counts} | {vram_usage}"
else:
log_message = f" Pool Status ({event}) -> {session_counts} | {vram_usage}"
logger.info(log_message)
except Exception as e:
logger.warning(f"Failed to log memory status after session event '{event}': {e}")
async def _create_session(self, model_type: ModelType, session_id: str) -> ModelSession:
"""새로운 모델 세션을 생성합니다."""
logger.info(f"Creating new session {session_id} for {model_type.value}...")
try:
model = await self._load_model(model_type)
@ -128,79 +116,50 @@ class SessionPool:
created_at=time.time(),
last_used=time.time()
)
logger.info(f"Successfully created session {session.session_id}")
logger.info(f"Successfully created session {session_id}")
self._log_pool_status("create", model_type.value)
return session
except Exception as e:
logger.error(f"Failed to create session {session_id}: {e}", exc_info=True)
raise
async def _load_model(self, model_type: ModelType) -> Any:
"""모델을 로드합니다."""
if model_type == ModelType.SIMPLE_LAMA:
return await self._load_simple_lama_model()
elif model_type == ModelType.MIGAN:
return await self._load_migan_model()
elif model_type == ModelType.REMBG:
return await asyncio.wait_for(self._load_rembg_model(), timeout=180) # 모델 다운로드 시간 고려
else:
raise ValueError(f"Unknown model type: {model_type}")
async def _load_simple_lama_model(self):
"""Simple LAMA 모델을 로드합니다."""
from ..models.simple_lama import SimpleLamaInpainter
try:
from ..models.simple_lama import SimpleLamaInpainter
model = SimpleLamaInpainter(
model_path=settings.SIMPLE_LAMA_MODEL_PATH,
device="cuda" if settings.USE_CUDA else "cpu",
fp16=settings.USE_FP16
)
await model.load_model()
logger.debug("Simple LAMA model instance created and loaded.")
return model
except Exception as e:
logger.error(f"Failed to load Simple LAMA model: {e}", exc_info=True)
raise
async def _load_migan_model(self):
"""MIGAN 모델을 로드합니다."""
from ..models.migan import MiganInpainter
try:
elif model_type == ModelType.MIGAN:
from ..models.migan import MiganInpainter
model = MiganInpainter(
model_path=getattr(settings, 'MIGAN_ONNX_PATH', settings.MIGAN_MODEL_PATH),
device="cuda" if settings.USE_CUDA else "cpu",
fp16=settings.USE_FP16,
use_cuda=settings.USE_CUDA
)
await model.load_model()
logger.debug("MIGAN model instance created and loaded.")
return model
except Exception as e:
logger.error(f"Failed to load MIGAN model: {e}", exc_info=True)
raise
async def _load_rembg_model(self):
"""REMBG 모델을 로드합니다."""
from ..models.rembg_model import RembgProcessor
try:
elif model_type == ModelType.REMBG:
from ..models.rembg_model import RembgProcessor
model = RembgProcessor(
model_name=getattr(settings, 'REMBG_MODEL_NAME', 'birefnet-general-lite'),
device="cuda" if settings.USE_CUDA else "cpu",
fp16=settings.USE_FP16,
local_rembg_model_path=getattr(settings, 'LOCAL_REMBG_MODEL_PATH', None)
)
await model.load_model()
logger.debug("RembgProcessor instance created and model pre-loaded.")
else:
raise ValueError(f"Unknown model type: {model_type}")
try:
await asyncio.wait_for(model.load_model(), timeout=180)
logger.debug(f"{model_type.value} model instance created and loaded.")
return model
except Exception as e:
logger.error(f"Failed to load REMBG model: {e}", exc_info=True)
logger.error(f"Failed to load {model_type.value} model: {e}", exc_info=True)
raise
@asynccontextmanager
async def get_session(self, model_type: ModelType):
"""세션을 가져와서 사용 후 반환합니다."""
session = await self._acquire_session(model_type)
try:
yield session
@ -209,13 +168,11 @@ class SessionPool:
await self._release_session(session)
async def _acquire_session(self, model_type: ModelType) -> ModelSession:
"""사용 가능한 세션을 획득하거나, VRAM 여유 시 새로 생성합니다."""
condition = self.conditions[model_type]
_, max_sessions = self.model_configs[model_type]
while True:
async with condition:
# 1. 사용 가능한 세션 찾기
for session in self.pools[model_type]:
if not session.in_use:
session.in_use = True
@ -223,9 +180,7 @@ class SessionPool:
logger.debug(f"Acquired existing session {session.session_id}")
return session
# 2. 세션을 새로 생성할 수 있는지 확인
if len(self.pools[model_type]) < max_sessions:
# 2-1. VRAM 여유 공간 확인
gpu_mem_info = gpu_monitor.get_gpu_memory_info()
free_vram_ratio = gpu_mem_info.get("free_ratio", 0)
@ -235,13 +190,13 @@ class SessionPool:
logger.info(f"Attempting to create new session for {model_type.value}. Current size: {current_pool_size}, Max size: {max_sessions}")
# Condition lock을 잠시 해제하고 세션 생성 (I/O 작업)
try:
new_session = await self._create_session(model_type, session_id)
# 다시 lock을 잡고 풀에 추가
new_session.in_use = True
new_session.mark_used()
self.pools[model_type].append(new_session)
self._log_pool_status("create", model_type.value) # 위치 변경
logger.info(f"Acquired new session {new_session.session_id} as VRAM is sufficient ({free_vram_ratio:.2f} > {settings.SESSION_VRAM_THRESHOLD:.2f})")
return new_session
except Exception:
@ -251,22 +206,18 @@ class SessionPool:
else:
logger.warning(f"Cannot create new session for {model_type.value}. VRAM threshold not met. (Free: {free_vram_ratio:.2f} <= Threshold: {settings.SESSION_VRAM_THRESHOLD:.2f})")
# 3. 대기
logger.debug(f"No available sessions or VRAM for {model_type.value}, waiting...")
await condition.wait()
async def _release_session(self, session: ModelSession):
"""세션을 반환하고 대기 중인 다른 요청에 알립니다."""
condition = self.conditions[session.model_type]
async with condition:
session.in_use = False
logger.debug(f"Released session {session.session_id}")
condition.notify() # 대기 중인 하나의 코루틴을 깨움
condition.notify()
def get_status(self) -> dict:
"""세션 풀의 현재 상태를 반환합니다."""
status_by_model = {}
for model_type in ModelType:
pool = self.pools[model_type]
min_s, max_s = self.model_configs[model_type]
@ -275,19 +226,48 @@ class SessionPool:
available = total - in_use
status_by_model[model_type.value] = {
"min": min_s,
"max": max_s,
"total": total,
"in_use": in_use,
"available": available
"min": min_s, "max": max_s, "total": total,
"in_use": in_use, "available": available
}
return status_by_model
# 전역 세션 풀 인스턴스 (설정값으로 초기화)
async def _reap_idle_sessions_task(self):
logger.info(f"Idle session reaper started. Timeout: {settings.SESSION_IDLE_TIMEOUT}s, Check Interval: 60s")
while True:
await asyncio.sleep(60)
reaped_counts = defaultdict(int)
for model_type, pool in self.pools.items():
min_sessions, _ = self.model_configs[model_type]
async with self.conditions[model_type]:
if len(pool) <= min_sessions:
continue
idle_sessions = [s for s in pool if s.is_idle(settings.SESSION_IDLE_TIMEOUT)]
num_to_reap = min(len(idle_sessions), len(pool) - min_sessions)
if num_to_reap > 0:
sessions_to_reap = idle_sessions[:num_to_reap]
logger.info(f"Reaping {len(sessions_to_reap)} idle session(s) for {model_type.value}.")
for session in sessions_to_reap:
pool.remove(session)
reaped_counts[session.model_type.value] += 1
del session.model
del session
self.conditions[model_type].notify_all()
if reaped_counts:
reaped_info = ", ".join([f"{count} {model}" for model, count in reaped_counts.items()])
self._log_pool_status("reap", reaped_info=reaped_info)
# Global session pool instance
model_configs = {
ModelType.SIMPLE_LAMA: (settings.SIMPLE_LAMA_MIN_SESSIONS, settings.SIMPLE_LAMA_MAX_SESSIONS),
ModelType.MIGAN: (settings.MIGAN_MIN_SESSIONS, settings.MIGAN_MAX_SESSIONS),
ModelType.REMBG: (settings.REMBG_MIN_SESSIONS, settings.REMBG_MAX_SESSIONS),
}
session_pool = SessionPool(model_configs=model_configs)

View File

@ -342,6 +342,10 @@ class WorkerManager:
async def _inpaint():
from ..core.session_pool import session_pool, ModelType
async with session_pool.get_session(model_type) as session:
vram_before = gpu_monitor.get_gpu_memory_info().get('used', 0)
logger.info(f"🧠[{stats_model_key}] Inference Start. VRAM: {(vram_before / 1024):.1f} GB")
start_time = time.time()
# Migan은 단일 이미지만 처리하므로 기존 로직 유지
result = await session.model.inpaint(
@ -349,8 +353,11 @@ class WorkerManager:
mask=kwargs["mask"],
)
duration = time.time() - start_time
vram_after = gpu_monitor.get_gpu_memory_info().get('used', 0)
logger.info(f"✅[{stats_model_key}] Inference End. VRAM: {(vram_after / 1024):.1f} GB | Duration: {duration:.3f}s")
stats_manager.record_time(stats_model_key, duration)
logger.info(f"'{model_name}' inpainting processed in {duration:.3f}s")
return result
# _execute_task 대신 직접 실행
@ -368,6 +375,10 @@ class WorkerManager:
batch_size = len(batch_data)
async with session_pool.get_session(model_type) as session:
vram_before = gpu_monitor.get_gpu_memory_info().get('used', 0)
logger.info(f"🧠[{stats_model_key}] Batch Inference Start (Size: {batch_size}). VRAM: {(vram_before / 1024):.1f} GB")
start_time = time.time()
images = [item['image'] for item in batch_data]
@ -380,6 +391,10 @@ class WorkerManager:
)
duration = time.time() - start_time
vram_after = gpu_monitor.get_gpu_memory_info().get('used', 0)
logger.info(f"✅[{stats_model_key}] Batch Inference End (Size: {batch_size}). VRAM: {(vram_after / 1024):.1f} GB | Duration: {duration:.3f}s")
# 통계 기록: 배치 전체 처리 시간 / 배치 크기
stats_manager.record_time(stats_model_key, duration / batch_size, count=batch_size)
logger.info(f"'simple-lama' batch of {batch_size} processed in {duration:.3f}s (avg: {duration/batch_size:.3f}s/image)")

View File

@ -8,6 +8,14 @@ import logging
import subprocess
import os
from typing import Dict, Optional, List
try:
import jtop
JTOP_AVAILABLE = True
except ImportError:
JTOP_AVAILABLE = False
logging.warning("jtop library not found. Jetson monitoring will be limited. Please run 'sudo pip install jetson-stats'")
try:
import pynvml
NVML_AVAILABLE = True
@ -27,9 +35,35 @@ class JetsonMonitor:
self.jetson_clocks_path = "/sys/kernel/debug/clk"
self.jetson_thermal_path = "/sys/devices/virtual/thermal"
self.jetson_power_path = "/sys/kernel/debug/tegra_pcie/pcie_power"
self._jtop = None
if JTOP_AVAILABLE:
try:
self._jtop = jtop.jtop()
self._jtop.start()
except Exception as e:
logger.error(f"Failed to initialize jtop: {e}")
self._jtop = None
def get_gpu_memory_info(self) -> Dict[str, float]:
"""Jetson 전용 GPU 메모리 정보를 가져옵니다."""
if self._jtop and self._jtop.ok:
try:
stats = self._jtop.stats
ram = stats.get('RAM', {})
total_mb = ram.get('tot', 0)
used_mb = ram.get('use', 0)
if total_mb > 0:
return {
"total": total_mb,
"used": used_mb,
"free": total_mb - used_mb,
"usage_percent": (used_mb / total_mb) * 100,
"free_ratio": (total_mb - used_mb) / total_mb
}
except Exception as e:
logger.warning(f"Failed to get memory info from jtop: {e}")
# jtop 실패 시 fallback 로직 (기존 코드)
try:
# 1. Jetson GPU 클래스에서 정보 읽기
if os.path.exists("/sys/class/nvidia-gpu"):
@ -129,21 +163,21 @@ class JetsonMonitor:
# 5. 기본값 반환
logger.warning("GPU 메모리 정보를 가져올 수 없습니다. 기본값을 사용합니다.")
mem = psutil.virtual_memory()
total_mb = mem.total / 1024**2
used_mb = mem.used / 1024**2
return {
"total": 8.0,
"used": 0.0,
"free": 8.0,
"usage_percent": 0.0
"total": total_mb, "used": used_mb, "free": mem.available / 1024**2,
"usage_percent": mem.percent, "free_ratio": mem.available / mem.total
}
except Exception as e:
logger.debug(f"Jetson GPU memory read failed: {e}")
return {
"total": 8.0,
"used": 0.0,
"free": 8.0,
"usage_percent": 0.0
}
logger.error(f"Jetson GPU memory read failed: {e}")
return {"total": 0, "used": 0, "free": 0, "usage_percent": 0, "free_ratio": 0}
def __del__(self):
if self._jtop and self._jtop.ok:
self._jtop.close()
def _tegrastats_available(self) -> bool:
"""tegrastats 명령어 사용 가능 여부 확인"""

View File

@ -6905,3 +6905,207 @@ NameError: name 'image_batch' is not defined
2025-08-30 01:57:50,022 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 01:57:51,985 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.184s (avg: 0.546s/image)
2025-08-30 01:57:51,986 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:00:41,334 - uvicorn.error - INFO - Shutting down
2025-08-30 02:00:41,437 - uvicorn.error - INFO - Waiting for application shutdown.
2025-08-30 02:00:41,438 - main - INFO - 🛑 인페인팅 서버 종료 중...
2025-08-30 02:00:41,439 - app.core.worker_manager - INFO - Stopping worker manager...
2025-08-30 02:00:41,440 - app.core.worker_manager - INFO - Worker manager stopped
2025-08-30 02:00:41,440 - main - INFO - ✅ 워커 매니저 중지 완료
2025-08-30 02:00:41,440 - app.core.batch_manager - INFO - Stopping BatchManager...
2025-08-30 02:00:41,442 - app.core.batch_manager - INFO - BatchManager stopped.
2025-08-30 02:00:41,442 - main - INFO - ✅ 배치 관리자 중지 완료
2025-08-30 02:00:41,442 - main - INFO - 👋 인페인팅 서버 종료 완료
2025-08-30 02:00:41,443 - app.utils.discord_notifier - WARNING - Discord 웹훅 URL이 설정되지 않아 알림을 보낼 수 없습니다.
2025-08-30 02:00:41,444 - uvicorn.error - INFO - Application shutdown complete.
2025-08-30 02:00:41,444 - uvicorn.error - INFO - Finished server process [77869]
2025-08-30 02:05:03,503 - uvicorn.error - INFO - Started server process [80039]
2025-08-30 02:05:03,504 - uvicorn.error - INFO - Waiting for application startup.
2025-08-30 02:05:03,505 - main - INFO - 🚀 인페인팅 서버 시작 중...
2025-08-30 02:05:03,505 - main - INFO - ✅ 공유 객체를 app.state에 저장 완료
2025-08-30 02:05:03,505 - main - INFO - 🔄 상태 저장 백그라운드 작업 생성 중...
2025-08-30 02:05:03,506 - main - INFO - ✅ 상태 저장 백그라운드 작업 생성 완료
2025-08-30 02:05:03,506 - main - INFO - 🚀 세션 풀 초기화 (CUDA 자동 감지)
2025-08-30 02:05:03,506 - app.core.session_pool - INFO - Initializing dynamic session pools...
2025-08-30 02:05:03,506 - app.core.session_pool - INFO - Pre-loading 2 sessions for simple_lama
2025-08-30 02:05:03,507 - main - INFO - 🔄 상태 저장 백그라운드 작업 시작됨
2025-08-30 02:05:03,508 - app.core.session_pool - INFO - Creating new session simple_lama_0 for simple_lama...
2025-08-30 02:05:06,750 - app.core.session_pool - INFO - Creating new session simple_lama_1 for simple_lama...
2025-08-30 02:05:06,752 - app.models.simple_lama - INFO - Loading Simple LAMA model...
2025-08-30 02:05:11,058 - app.models.simple_lama - INFO - 실제 SimpleLama 모델 로딩 완료
2025-08-30 02:05:11,059 - app.models.simple_lama - INFO - Simple LAMA model loaded successfully
2025-08-30 02:05:11,060 - app.models.simple_lama - INFO - Loading Simple LAMA model...
2025-08-30 02:05:12,781 - app.models.simple_lama - INFO - 실제 SimpleLama 모델 로딩 완료
2025-08-30 02:05:12,781 - app.models.simple_lama - INFO - Simple LAMA model loaded successfully
2025-08-30 02:05:12,783 - app.core.session_pool - INFO - Successfully created session simple_lama_0
2025-08-30 02:05:15,866 - app.core.session_pool - INFO - Session Created (simple_lama). Status -> simple_lama: 0, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (25.7%)
2025-08-30 02:05:15,868 - app.core.session_pool - INFO - Successfully created session simple_lama_1
2025-08-30 02:05:18,967 - app.core.session_pool - INFO - Session Created (simple_lama). Status -> simple_lama: 0, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (25.7%)
2025-08-30 02:05:18,970 - app.core.session_pool - INFO - Pre-loading 2 sessions for migan
2025-08-30 02:05:18,975 - app.core.session_pool - INFO - Creating new session migan_0 for migan...
2025-08-30 02:05:19,074 - app.core.session_pool - INFO - Creating new session migan_1 for migan...
2025-08-30 02:05:19,075 - app.models.migan - INFO - Loading MIGAN ONNX model...
2025-08-30 02:05:19,075 - app.models.migan - INFO - MIGAN ONNX 런타임 세션 생성 시도...
2025-08-30 02:05:19,076 - app.models.migan - INFO - MIGAN ONNX providers 설정: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:05:22,203 - app.models.migan - INFO - MIGAN ONNX 세션 생성 완료. Providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:05:22,204 - app.models.migan - INFO - MIGAN ONNX model loaded successfully
2025-08-30 02:05:22,204 - app.models.migan - INFO - Loading MIGAN ONNX model...
2025-08-30 02:05:22,204 - app.models.migan - INFO - MIGAN ONNX 런타임 세션 생성 시도...
2025-08-30 02:05:22,205 - app.models.migan - INFO - MIGAN ONNX providers 설정: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:05:23,455 - app.models.migan - INFO - MIGAN ONNX 세션 생성 완료. Providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:05:23,456 - app.models.migan - INFO - MIGAN ONNX model loaded successfully
2025-08-30 02:05:23,456 - app.core.session_pool - INFO - Successfully created session migan_0
2025-08-30 02:05:26,546 - app.core.session_pool - INFO - Session Created (migan). Status -> simple_lama: 2, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (27.5%)
2025-08-30 02:05:26,548 - app.core.session_pool - INFO - Successfully created session migan_1
2025-08-30 02:05:29,649 - app.core.session_pool - INFO - Session Created (migan). Status -> simple_lama: 2, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (27.5%)
2025-08-30 02:05:29,655 - app.core.session_pool - INFO - Pre-loading 2 sessions for rembg
2025-08-30 02:05:29,657 - app.core.session_pool - INFO - Creating new session rembg_0 for rembg...
2025-08-30 02:05:29,665 - app.core.session_pool - INFO - Creating new session rembg_1 for rembg...
2025-08-30 02:05:29,666 - app.models.rembg_model - INFO - Loading REMBG model (birefnet-general-lite)...
2025-08-30 02:05:31,788 - app.models.rembg_model - INFO - rembg 모듈 임포트 성공 (세션 생성은 지연 로딩)
2025-08-30 02:05:31,788 - app.models.rembg_model - INFO - 🔧 rembg 새 세션 생성 필요: birefnet-general-lite_cuda_True
2025-08-30 02:05:31,789 - app.models.rembg_model - WARNING - rembg.sessions import 실패, 기본 방식 사용
2025-08-30 02:05:31,789 - app.models.rembg_model - INFO - rembg 세션 생성 providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:05:44,832 - app.models.rembg_model - INFO - ✅ rembg 'birefnet-general-lite' GPU 가속로 동작 (providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'])
2025-08-30 02:05:44,833 - app.models.rembg_model - INFO - REMBG model (birefnet-general-lite) loaded successfully
2025-08-30 02:05:44,834 - app.models.rembg_model - INFO - Loading REMBG model (birefnet-general-lite)...
2025-08-30 02:05:44,834 - app.models.rembg_model - INFO - rembg 모듈 임포트 성공 (세션 생성은 지연 로딩)
2025-08-30 02:05:44,835 - app.models.rembg_model - INFO - 🔧 rembg 새 세션 생성 필요: birefnet-general-lite_cuda_True
2025-08-30 02:05:44,835 - app.models.rembg_model - WARNING - rembg.sessions import 실패, 기본 방식 사용
2025-08-30 02:05:44,836 - app.models.rembg_model - INFO - rembg 세션 생성 providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:05:57,362 - app.models.rembg_model - INFO - ✅ rembg 'birefnet-general-lite' GPU 가속로 동작 (providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'])
2025-08-30 02:05:57,363 - app.models.rembg_model - INFO - REMBG model (birefnet-general-lite) loaded successfully
2025-08-30 02:05:57,364 - app.core.session_pool - INFO - Successfully created session rembg_0
2025-08-30 02:06:00,471 - app.core.session_pool - INFO - Session Created (rembg). Status -> simple_lama: 2, migan: 2, rembg: 0 | VRAM: 0.0/0.0 GB (30.9%)
2025-08-30 02:06:00,474 - app.core.session_pool - INFO - Successfully created session rembg_1
2025-08-30 02:06:03,606 - app.core.session_pool - INFO - Session Created (rembg). Status -> simple_lama: 2, migan: 2, rembg: 0 | VRAM: 0.0/0.0 GB (30.9%)
2025-08-30 02:06:03,614 - app.core.session_pool - INFO - Session pools initialized successfully
2025-08-30 02:06:03,614 - main - INFO - ✅ 세션 풀 초기화 완료
2025-08-30 02:06:03,615 - app.core.worker_manager - INFO - Starting worker manager...
2025-08-30 02:06:03,616 - app.core.worker_manager - INFO - Worker manager started with 10 workers
2025-08-30 02:06:03,617 - main - INFO - ✅ 워커 매니저 시작 완료
2025-08-30 02:06:03,617 - app.core.batch_manager - INFO - Starting BatchManager...
2025-08-30 02:06:03,618 - app.core.batch_manager - INFO - BatchManager started successfully.
2025-08-30 02:06:03,618 - main - INFO - ✅ 배치 관리자 시작 완료
2025-08-30 02:06:03,618 - main - INFO - 🎉 인페인팅 서버 시작 완료!
2025-08-30 02:06:03,619 - app.utils.discord_notifier - WARNING - Discord 웹훅 URL이 설정되지 않아 알림을 보낼 수 없습니다.
2025-08-30 02:06:03,620 - app.core.session_pool - INFO - Idle session reaper started. Timeout: 1800s, Check Interval: 60s
2025-08-30 02:06:06,738 - uvicorn.error - INFO - Application startup complete.
2025-08-30 02:06:06,749 - uvicorn.error - INFO - Uvicorn running on http://0.0.0.0:8008 (Press CTRL+C to quit)
2025-08-30 02:06:15,807 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 02:06:15,968 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 02:06:21,923 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 6.115s (avg: 1.529s/image)
2025-08-30 02:06:21,924 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:06:21,954 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 02:06:22,177 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 02:06:35,717 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 13.762s (avg: 3.440s/image)
2025-08-30 02:06:35,718 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:06:40,055 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 02:06:40,326 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 02:06:42,280 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.223s (avg: 0.556s/image)
2025-08-30 02:06:42,281 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:06:42,312 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 02:06:42,534 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 02:06:44,497 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.184s (avg: 0.546s/image)
2025-08-30 02:06:44,498 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:06:48,023 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 02:06:48,279 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 02:06:50,618 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.595s (avg: 0.649s/image)
2025-08-30 02:06:50,619 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:06:50,649 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 02:06:50,871 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 02:06:52,820 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.170s (avg: 0.542s/image)
2025-08-30 02:06:52,821 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:06:58,157 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 02:06:58,403 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 02:07:00,898 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.740s (avg: 0.685s/image)
2025-08-30 02:07:00,899 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:07:00,929 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 02:07:01,153 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 02:07:03,109 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.179s (avg: 0.545s/image)
2025-08-30 02:07:03,109 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
2025-08-30 02:09:36,641 - uvicorn.error - INFO - Shutting down
2025-08-30 02:09:36,746 - uvicorn.error - INFO - Waiting for application shutdown.
2025-08-30 02:09:36,747 - main - INFO - 🛑 인페인팅 서버 종료 중...
2025-08-30 02:09:36,748 - app.core.worker_manager - INFO - Stopping worker manager...
2025-08-30 02:09:36,748 - app.core.worker_manager - INFO - Worker manager stopped
2025-08-30 02:09:36,749 - main - INFO - ✅ 워커 매니저 중지 완료
2025-08-30 02:09:36,749 - app.core.batch_manager - INFO - Stopping BatchManager...
2025-08-30 02:09:36,750 - app.core.batch_manager - INFO - BatchManager stopped.
2025-08-30 02:09:36,751 - main - INFO - ✅ 배치 관리자 중지 완료
2025-08-30 02:09:36,751 - main - INFO - 👋 인페인팅 서버 종료 완료
2025-08-30 02:09:36,752 - app.utils.discord_notifier - WARNING - Discord 웹훅 URL이 설정되지 않아 알림을 보낼 수 없습니다.
2025-08-30 02:09:36,752 - uvicorn.error - INFO - Application shutdown complete.
2025-08-30 02:09:36,753 - uvicorn.error - INFO - Finished server process [80039]
2025-08-30 02:10:05,479 - uvicorn.error - INFO - Started server process [81535]
2025-08-30 02:10:05,500 - uvicorn.error - INFO - Waiting for application startup.
2025-08-30 02:10:05,518 - main - INFO - 🚀 인페인팅 서버 시작 중...
2025-08-30 02:10:05,519 - main - INFO - ✅ 공유 객체를 app.state에 저장 완료
2025-08-30 02:10:05,520 - main - INFO - 🔄 상태 저장 백그라운드 작업 생성 중...
2025-08-30 02:10:05,527 - main - INFO - ✅ 상태 저장 백그라운드 작업 생성 완료
2025-08-30 02:10:05,529 - main - INFO - 🚀 세션 풀 초기화 (CUDA 자동 감지)
2025-08-30 02:10:05,529 - app.core.session_pool - INFO - Initializing dynamic session pools...
2025-08-30 02:10:05,530 - app.core.session_pool - INFO - Pre-loading 2 sessions for simple_lama
2025-08-30 02:10:05,531 - main - INFO - 🔄 상태 저장 백그라운드 작업 시작됨
2025-08-30 02:10:05,535 - app.core.session_pool - INFO - Creating new session simple_lama_0 for simple_lama...
2025-08-30 02:10:09,061 - app.core.session_pool - INFO - Creating new session simple_lama_1 for simple_lama...
2025-08-30 02:10:09,063 - app.models.simple_lama - INFO - Loading Simple LAMA model...
2025-08-30 02:10:13,365 - app.models.simple_lama - INFO - 실제 SimpleLama 모델 로딩 완료
2025-08-30 02:10:13,366 - app.models.simple_lama - INFO - Simple LAMA model loaded successfully
2025-08-30 02:10:13,367 - app.models.simple_lama - INFO - Loading Simple LAMA model...
2025-08-30 02:10:15,170 - app.models.simple_lama - INFO - 실제 SimpleLama 모델 로딩 완료
2025-08-30 02:10:15,171 - app.models.simple_lama - INFO - Simple LAMA model loaded successfully
2025-08-30 02:10:15,173 - app.core.session_pool - INFO - Successfully created session simple_lama_0
2025-08-30 02:10:18,257 - app.core.session_pool - INFO - Session Created (simple_lama). Status -> simple_lama: 0, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (25.5%)
2025-08-30 02:10:18,260 - app.core.session_pool - INFO - Successfully created session simple_lama_1
2025-08-30 02:10:21,351 - app.core.session_pool - INFO - Session Created (simple_lama). Status -> simple_lama: 0, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (25.5%)
2025-08-30 02:10:21,354 - app.core.session_pool - INFO - Pre-loading 2 sessions for migan
2025-08-30 02:10:21,360 - app.core.session_pool - INFO - Creating new session migan_0 for migan...
2025-08-30 02:10:21,463 - app.core.session_pool - INFO - Creating new session migan_1 for migan...
2025-08-30 02:10:21,463 - app.models.migan - INFO - Loading MIGAN ONNX model...
2025-08-30 02:10:21,464 - app.models.migan - INFO - MIGAN ONNX 런타임 세션 생성 시도...
2025-08-30 02:10:21,464 - app.models.migan - INFO - MIGAN ONNX providers 설정: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:24,696 - app.models.migan - INFO - MIGAN ONNX 세션 생성 완료. Providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:24,697 - app.models.migan - INFO - MIGAN ONNX model loaded successfully
2025-08-30 02:10:24,697 - app.models.migan - INFO - Loading MIGAN ONNX model...
2025-08-30 02:10:24,698 - app.models.migan - INFO - MIGAN ONNX 런타임 세션 생성 시도...
2025-08-30 02:10:24,698 - app.models.migan - INFO - MIGAN ONNX providers 설정: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:25,896 - app.models.migan - INFO - MIGAN ONNX 세션 생성 완료. Providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:25,897 - app.models.migan - INFO - MIGAN ONNX model loaded successfully
2025-08-30 02:10:25,897 - app.core.session_pool - INFO - Successfully created session migan_0
2025-08-30 02:10:28,989 - app.core.session_pool - INFO - Session Created (migan). Status -> simple_lama: 2, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (27.4%)
2025-08-30 02:10:28,992 - app.core.session_pool - INFO - Successfully created session migan_1
2025-08-30 02:10:32,102 - app.core.session_pool - INFO - Session Created (migan). Status -> simple_lama: 2, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (27.4%)
2025-08-30 02:10:32,109 - app.core.session_pool - INFO - Pre-loading 2 sessions for rembg
2025-08-30 02:10:32,111 - app.core.session_pool - INFO - Creating new session rembg_0 for rembg...
2025-08-30 02:10:32,118 - app.core.session_pool - INFO - Creating new session rembg_1 for rembg...
2025-08-30 02:10:32,120 - app.models.rembg_model - INFO - Loading REMBG model (birefnet-general-lite)...
2025-08-30 02:10:34,236 - app.models.rembg_model - INFO - rembg 모듈 임포트 성공 (세션 생성은 지연 로딩)
2025-08-30 02:10:34,236 - app.models.rembg_model - INFO - 🔧 rembg 새 세션 생성 필요: birefnet-general-lite_cuda_True
2025-08-30 02:10:34,237 - app.models.rembg_model - WARNING - rembg.sessions import 실패, 기본 방식 사용
2025-08-30 02:10:34,237 - app.models.rembg_model - INFO - rembg 세션 생성 providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:47,102 - app.models.rembg_model - INFO - ✅ rembg 'birefnet-general-lite' GPU 가속로 동작 (providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'])
2025-08-30 02:10:47,103 - app.models.rembg_model - INFO - REMBG model (birefnet-general-lite) loaded successfully
2025-08-30 02:10:47,103 - app.models.rembg_model - INFO - Loading REMBG model (birefnet-general-lite)...
2025-08-30 02:10:47,104 - app.models.rembg_model - INFO - rembg 모듈 임포트 성공 (세션 생성은 지연 로딩)
2025-08-30 02:10:47,104 - app.models.rembg_model - INFO - 🔧 rembg 새 세션 생성 필요: birefnet-general-lite_cuda_True
2025-08-30 02:10:47,105 - app.models.rembg_model - WARNING - rembg.sessions import 실패, 기본 방식 사용
2025-08-30 02:10:47,105 - app.models.rembg_model - INFO - rembg 세션 생성 providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:59,703 - app.models.rembg_model - INFO - ✅ rembg 'birefnet-general-lite' GPU 가속로 동작 (providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'])
2025-08-30 02:10:59,704 - app.models.rembg_model - INFO - REMBG model (birefnet-general-lite) loaded successfully
2025-08-30 02:10:59,705 - app.core.session_pool - INFO - Successfully created session rembg_0
2025-08-30 02:11:02,815 - app.core.session_pool - INFO - Session Created (rembg). Status -> simple_lama: 2, migan: 2, rembg: 0 | VRAM: 0.0/0.0 GB (31.0%)
2025-08-30 02:11:02,817 - app.core.session_pool - INFO - Successfully created session rembg_1
2025-08-30 02:11:05,936 - app.core.session_pool - INFO - Session Created (rembg). Status -> simple_lama: 2, migan: 2, rembg: 0 | VRAM: 0.0/0.0 GB (31.0%)
2025-08-30 02:11:05,944 - app.core.session_pool - INFO - Session pools initialized successfully
2025-08-30 02:11:05,945 - main - INFO - ✅ 세션 풀 초기화 완료
2025-08-30 02:11:05,946 - app.core.worker_manager - INFO - Starting worker manager...
2025-08-30 02:11:05,949 - app.core.worker_manager - INFO - Worker manager started with 10 workers
2025-08-30 02:11:05,949 - main - INFO - ✅ 워커 매니저 시작 완료
2025-08-30 02:11:05,950 - app.core.batch_manager - INFO - Starting BatchManager...
2025-08-30 02:11:05,951 - app.core.batch_manager - INFO - BatchManager started successfully.
2025-08-30 02:11:05,951 - main - INFO - ✅ 배치 관리자 시작 완료
2025-08-30 02:11:05,952 - main - INFO - 🎉 인페인팅 서버 시작 완료!
2025-08-30 02:11:05,954 - app.utils.discord_notifier - WARNING - Discord 웹훅 URL이 설정되지 않아 알림을 보낼 수 없습니다.
2025-08-30 02:11:05,955 - app.core.session_pool - INFO - Idle session reaper started. Timeout: 1800s, Check Interval: 60s
2025-08-30 02:11:09,078 - uvicorn.error - INFO - Application startup complete.
2025-08-30 02:11:09,089 - uvicorn.error - INFO - Uvicorn running on http://0.0.0.0:8008 (Press CTRL+C to quit)

View File

@ -1,127 +1,612 @@
INFO: Started server process [77869]
2025-08-30 01:55:09,899 - uvicorn.error - INFO - Started server process [77869]
Failed to initialize jtop: The jtop.service is not active. Please run:
sudo systemctl restart jtop.service
INFO: Started server process [81535]
2025-08-30 02:10:05,479 - uvicorn.error - INFO - Started server process [81535]
INFO: Waiting for application startup.
2025-08-30 01:55:09,900 - uvicorn.error - INFO - Waiting for application startup.
2025-08-30 01:55:09,901 - main - INFO - 🚀 인페인팅 서버 시작 중...
2025-08-30 01:55:09,901 - main - INFO - ✅ 공유 객체를 app.state에 저장 완료
2025-08-30 01:55:09,902 - main - INFO - 🔄 상태 저장 백그라운드 작업 생성 중...
2025-08-30 01:55:09,902 - main - INFO - ✅ 상태 저장 백그라운드 작업 생성 완료
2025-08-30 01:55:09,902 - main - INFO - 🚀 세션 풀 초기화 (CUDA 자동 감지)
2025-08-30 01:55:09,902 - app.core.session_pool - INFO - Initializing dynamic session pools...
2025-08-30 01:55:09,903 - app.core.session_pool - INFO - Pre-loading 2 sessions for simple_lama
2025-08-30 01:55:09,903 - main - INFO - 🔄 상태 저장 백그라운드 작업 시작됨
2025-08-30 01:55:09,905 - app.core.session_pool - INFO - Creating new session simple_lama_0 for simple_lama...
2025-08-30 01:55:13,106 - app.models.simple_lama - INFO - Loading Simple LAMA model...
2025-08-30 01:55:17,237 - app.models.simple_lama - INFO - 실제 SimpleLama 모델 로딩 완료
2025-08-30 01:55:17,239 - app.models.simple_lama - INFO - Simple LAMA model loaded successfully
2025-08-30 01:55:17,240 - app.core.session_pool - INFO - Successfully created session simple_lama_0
2025-08-30 01:55:17,241 - app.core.session_pool - INFO - Creating new session simple_lama_1 for simple_lama...
2025-08-30 01:55:17,241 - app.models.simple_lama - INFO - Loading Simple LAMA model...
2025-08-30 01:55:18,996 - app.models.simple_lama - INFO - 실제 SimpleLama 모델 로딩 완료
2025-08-30 01:55:18,997 - app.models.simple_lama - INFO - Simple LAMA model loaded successfully
2025-08-30 01:55:18,997 - app.core.session_pool - INFO - Successfully created session simple_lama_1
2025-08-30 01:55:18,998 - app.core.session_pool - INFO - Pre-loading 2 sessions for migan
2025-08-30 01:55:18,999 - app.core.session_pool - INFO - Creating new session migan_0 for migan...
2025-08-30 01:55:19,063 - app.models.migan - INFO - Loading MIGAN ONNX model...
2025-08-30 01:55:19,064 - app.models.migan - INFO - MIGAN ONNX 런타임 세션 생성 시도...
2025-08-30 01:55:19,064 - app.models.migan - INFO - MIGAN ONNX providers 설정: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 01:55:20.438912801 [W:onnxruntime:, transformer_memcpy.cc:74 ApplyImpl] 17 Memcpy nodes are added to the graph main_graph for CUDAExecutionProvider. It might have negative impact on performance (including unable to run CUDA graph). Set session_options.log_severity_level=1 to see the detail logs before this message.
2025-08-30 01:55:21,872 - app.models.migan - INFO - MIGAN ONNX 세션 생성 완료. Providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 01:55:21,873 - app.models.migan - INFO - MIGAN ONNX model loaded successfully
2025-08-30 01:55:21,874 - app.core.session_pool - INFO - Successfully created session migan_0
2025-08-30 01:55:21,874 - app.core.session_pool - INFO - Creating new session migan_1 for migan...
2025-08-30 01:55:21,875 - app.models.migan - INFO - Loading MIGAN ONNX model...
2025-08-30 01:55:21,875 - app.models.migan - INFO - MIGAN ONNX 런타임 세션 생성 시도...
2025-08-30 01:55:21,875 - app.models.migan - INFO - MIGAN ONNX providers 설정: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 01:55:22.968322444 [W:onnxruntime:, transformer_memcpy.cc:74 ApplyImpl] 17 Memcpy nodes are added to the graph main_graph for CUDAExecutionProvider. It might have negative impact on performance (including unable to run CUDA graph). Set session_options.log_severity_level=1 to see the detail logs before this message.
2025-08-30 01:55:23,132 - app.models.migan - INFO - MIGAN ONNX 세션 생성 완료. Providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 01:55:23,133 - app.models.migan - INFO - MIGAN ONNX model loaded successfully
2025-08-30 01:55:23,134 - app.core.session_pool - INFO - Successfully created session migan_1
2025-08-30 01:55:23,134 - app.core.session_pool - INFO - Pre-loading 2 sessions for rembg
2025-08-30 01:55:23,136 - app.core.session_pool - INFO - Creating new session rembg_0 for rembg...
2025-08-30 01:55:23,137 - app.core.session_pool - INFO - Creating new session rembg_1 for rembg...
2025-08-30 01:55:23,139 - app.models.rembg_model - INFO - Loading REMBG model (birefnet-general-lite)...
2025-08-30 01:55:25,141 - app.models.rembg_model - INFO - rembg 모듈 임포트 성공 (세션 생성은 지연 로딩)
2025-08-30 01:55:25,141 - app.models.rembg_model - INFO - 🔧 rembg 새 세션 생성 필요: birefnet-general-lite_cuda_True
2025-08-30 01:55:25,142 - app.models.rembg_model - WARNING - rembg.sessions import 실패, 기본 방식 사용
2025-08-30 01:55:25,142 - app.models.rembg_model - INFO - rembg 세션 생성 providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 01:55:38,144 - app.models.rembg_model - INFO - ✅ rembg 'birefnet-general-lite' GPU 가속로 동작 (providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'])
2025-08-30 01:55:38,145 - app.models.rembg_model - INFO - REMBG model (birefnet-general-lite) loaded successfully
2025-08-30 01:55:38,146 - app.models.rembg_model - INFO - Loading REMBG model (birefnet-general-lite)...
2025-08-30 01:55:38,146 - app.models.rembg_model - INFO - rembg 모듈 임포트 성공 (세션 생성은 지연 로딩)
2025-08-30 01:55:38,147 - app.models.rembg_model - INFO - 🔧 rembg 새 세션 생성 필요: birefnet-general-lite_cuda_True
2025-08-30 01:55:38,148 - app.models.rembg_model - WARNING - rembg.sessions import 실패, 기본 방식 사용
2025-08-30 01:55:38,148 - app.models.rembg_model - INFO - rembg 세션 생성 providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 01:55:50,692 - app.models.rembg_model - INFO - ✅ rembg 'birefnet-general-lite' GPU 가속로 동작 (providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'])
2025-08-30 01:55:50,693 - app.models.rembg_model - INFO - REMBG model (birefnet-general-lite) loaded successfully
2025-08-30 01:55:50,694 - app.core.session_pool - INFO - Successfully created session rembg_0
2025-08-30 01:55:50,694 - app.core.session_pool - INFO - Successfully created session rembg_1
2025-08-30 01:55:50,696 - app.core.session_pool - INFO - Session pools initialized successfully
2025-08-30 01:55:50,697 - main - INFO - ✅ 세션 풀 초기화 완료
2025-08-30 01:55:50,697 - app.core.worker_manager - INFO - Starting worker manager...
2025-08-30 01:55:50,698 - app.core.worker_manager - INFO - Worker manager started with 10 workers
2025-08-30 01:55:50,698 - main - INFO - ✅ 워커 매니저 시작 완료
2025-08-30 01:55:50,698 - app.core.batch_manager - INFO - Starting BatchManager...
2025-08-30 01:55:50,699 - app.core.batch_manager - INFO - BatchManager started successfully.
2025-08-30 01:55:50,699 - main - INFO - ✅ 배치 관리자 시작 완료
2025-08-30 01:55:50,699 - main - INFO - 🎉 인페인팅 서버 시작 완료!
2025-08-30 01:55:50,700 - app.utils.discord_notifier - WARNING - Discord 웹훅 URL이 설정되지 않아 알림을 보낼 수 없습니다.
2025-08-30 01:55:50,700 - app.core.session_pool - INFO - Idle session reaper started. Timeout: 1800s, Check Interval: 60s
2025-08-30 02:10:05,500 - uvicorn.error - INFO - Waiting for application startup.
2025-08-30 02:10:05,518 - main - INFO - 🚀 인페인팅 서버 시작 중...
2025-08-30 02:10:05,519 - main - INFO - ✅ 공유 객체를 app.state에 저장 완료
2025-08-30 02:10:05,520 - main - INFO - 🔄 상태 저장 백그라운드 작업 생성 중...
2025-08-30 02:10:05,527 - main - INFO - ✅ 상태 저장 백그라운드 작업 생성 완료
2025-08-30 02:10:05,529 - main - INFO - 🚀 세션 풀 초기화 (CUDA 자동 감지)
2025-08-30 02:10:05,529 - app.core.session_pool - INFO - Initializing dynamic session pools...
2025-08-30 02:10:05,530 - app.core.session_pool - INFO - Pre-loading 2 sessions for simple_lama
2025-08-30 02:10:05,531 - main - INFO - 🔄 상태 저장 백그라운드 작업 시작됨
2025-08-30 02:10:05,535 - app.core.session_pool - INFO - Creating new session simple_lama_0 for simple_lama...
2025-08-30 02:10:09,061 - app.core.session_pool - INFO - Creating new session simple_lama_1 for simple_lama...
2025-08-30 02:10:09,063 - app.models.simple_lama - INFO - Loading Simple LAMA model...
2025-08-30 02:10:13,365 - app.models.simple_lama - INFO - 실제 SimpleLama 모델 로딩 완료
2025-08-30 02:10:13,366 - app.models.simple_lama - INFO - Simple LAMA model loaded successfully
2025-08-30 02:10:13,367 - app.models.simple_lama - INFO - Loading Simple LAMA model...
2025-08-30 02:10:15,170 - app.models.simple_lama - INFO - 실제 SimpleLama 모델 로딩 완료
2025-08-30 02:10:15,171 - app.models.simple_lama - INFO - Simple LAMA model loaded successfully
2025-08-30 02:10:15,173 - app.core.session_pool - INFO - Successfully created session simple_lama_0
2025-08-30 02:10:18,257 - app.core.session_pool - INFO - Session Created (simple_lama). Status -> simple_lama: 0, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (25.5%)
2025-08-30 02:10:18,260 - app.core.session_pool - INFO - Successfully created session simple_lama_1
2025-08-30 02:10:21,351 - app.core.session_pool - INFO - Session Created (simple_lama). Status -> simple_lama: 0, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (25.5%)
2025-08-30 02:10:21,354 - app.core.session_pool - INFO - Pre-loading 2 sessions for migan
2025-08-30 02:10:21,360 - app.core.session_pool - INFO - Creating new session migan_0 for migan...
2025-08-30 02:10:21,463 - app.core.session_pool - INFO - Creating new session migan_1 for migan...
2025-08-30 02:10:21,463 - app.models.migan - INFO - Loading MIGAN ONNX model...
2025-08-30 02:10:21,464 - app.models.migan - INFO - MIGAN ONNX 런타임 세션 생성 시도...
2025-08-30 02:10:21,464 - app.models.migan - INFO - MIGAN ONNX providers 설정: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:23.133477861 [W:onnxruntime:, transformer_memcpy.cc:74 ApplyImpl] 17 Memcpy nodes are added to the graph main_graph for CUDAExecutionProvider. It might have negative impact on performance (including unable to run CUDA graph). Set session_options.log_severity_level=1 to see the detail logs before this message.
2025-08-30 02:10:24,696 - app.models.migan - INFO - MIGAN ONNX 세션 생성 완료. Providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:24,697 - app.models.migan - INFO - MIGAN ONNX model loaded successfully
2025-08-30 02:10:24,697 - app.models.migan - INFO - Loading MIGAN ONNX model...
2025-08-30 02:10:24,698 - app.models.migan - INFO - MIGAN ONNX 런타임 세션 생성 시도...
2025-08-30 02:10:24,698 - app.models.migan - INFO - MIGAN ONNX providers 설정: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:25.735198383 [W:onnxruntime:, transformer_memcpy.cc:74 ApplyImpl] 17 Memcpy nodes are added to the graph main_graph for CUDAExecutionProvider. It might have negative impact on performance (including unable to run CUDA graph). Set session_options.log_severity_level=1 to see the detail logs before this message.
2025-08-30 02:10:25,896 - app.models.migan - INFO - MIGAN ONNX 세션 생성 완료. Providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:25,897 - app.models.migan - INFO - MIGAN ONNX model loaded successfully
2025-08-30 02:10:25,897 - app.core.session_pool - INFO - Successfully created session migan_0
2025-08-30 02:10:28,989 - app.core.session_pool - INFO - Session Created (migan). Status -> simple_lama: 2, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (27.4%)
2025-08-30 02:10:28,992 - app.core.session_pool - INFO - Successfully created session migan_1
2025-08-30 02:10:32,102 - app.core.session_pool - INFO - Session Created (migan). Status -> simple_lama: 2, migan: 0, rembg: 0 | VRAM: 0.0/0.0 GB (27.4%)
2025-08-30 02:10:32,109 - app.core.session_pool - INFO - Pre-loading 2 sessions for rembg
2025-08-30 02:10:32,111 - app.core.session_pool - INFO - Creating new session rembg_0 for rembg...
2025-08-30 02:10:32,118 - app.core.session_pool - INFO - Creating new session rembg_1 for rembg...
2025-08-30 02:10:32,120 - app.models.rembg_model - INFO - Loading REMBG model (birefnet-general-lite)...
2025-08-30 02:10:34,236 - app.models.rembg_model - INFO - rembg 모듈 임포트 성공 (세션 생성은 지연 로딩)
2025-08-30 02:10:34,236 - app.models.rembg_model - INFO - 🔧 rembg 새 세션 생성 필요: birefnet-general-lite_cuda_True
2025-08-30 02:10:34,237 - app.models.rembg_model - WARNING - rembg.sessions import 실패, 기본 방식 사용
2025-08-30 02:10:34,237 - app.models.rembg_model - INFO - rembg 세션 생성 providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:47,102 - app.models.rembg_model - INFO - ✅ rembg 'birefnet-general-lite' GPU 가속로 동작 (providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'])
2025-08-30 02:10:47,103 - app.models.rembg_model - INFO - REMBG model (birefnet-general-lite) loaded successfully
2025-08-30 02:10:47,103 - app.models.rembg_model - INFO - Loading REMBG model (birefnet-general-lite)...
2025-08-30 02:10:47,104 - app.models.rembg_model - INFO - rembg 모듈 임포트 성공 (세션 생성은 지연 로딩)
2025-08-30 02:10:47,104 - app.models.rembg_model - INFO - 🔧 rembg 새 세션 생성 필요: birefnet-general-lite_cuda_True
2025-08-30 02:10:47,105 - app.models.rembg_model - WARNING - rembg.sessions import 실패, 기본 방식 사용
2025-08-30 02:10:47,105 - app.models.rembg_model - INFO - rembg 세션 생성 providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
2025-08-30 02:10:59,703 - app.models.rembg_model - INFO - ✅ rembg 'birefnet-general-lite' GPU 가속로 동작 (providers: ['CUDAExecutionProvider', 'CPUExecutionProvider'])
2025-08-30 02:10:59,704 - app.models.rembg_model - INFO - REMBG model (birefnet-general-lite) loaded successfully
2025-08-30 02:10:59,705 - app.core.session_pool - INFO - Successfully created session rembg_0
2025-08-30 02:11:02,815 - app.core.session_pool - INFO - Session Created (rembg). Status -> simple_lama: 2, migan: 2, rembg: 0 | VRAM: 0.0/0.0 GB (31.0%)
2025-08-30 02:11:02,817 - app.core.session_pool - INFO - Successfully created session rembg_1
2025-08-30 02:11:05,936 - app.core.session_pool - INFO - Session Created (rembg). Status -> simple_lama: 2, migan: 2, rembg: 0 | VRAM: 0.0/0.0 GB (31.0%)
2025-08-30 02:11:05,944 - app.core.session_pool - INFO - Session pools initialized successfully
2025-08-30 02:11:05,945 - main - INFO - ✅ 세션 풀 초기화 완료
2025-08-30 02:11:05,946 - app.core.worker_manager - INFO - Starting worker manager...
2025-08-30 02:11:05,949 - app.core.worker_manager - INFO - Worker manager started with 10 workers
2025-08-30 02:11:05,949 - main - INFO - ✅ 워커 매니저 시작 완료
2025-08-30 02:11:05,950 - app.core.batch_manager - INFO - Starting BatchManager...
2025-08-30 02:11:05,951 - app.core.batch_manager - INFO - BatchManager started successfully.
2025-08-30 02:11:05,951 - main - INFO - ✅ 배치 관리자 시작 완료
2025-08-30 02:11:05,952 - main - INFO - 🎉 인페인팅 서버 시작 완료!
2025-08-30 02:11:05,954 - app.utils.discord_notifier - WARNING - Discord 웹훅 URL이 설정되지 않아 알림을 보낼 수 없습니다.
2025-08-30 02:11:05,955 - app.core.session_pool - INFO - Idle session reaper started. Timeout: 1800s, Check Interval: 60s
INFO: Application startup complete.
2025-08-30 01:55:50,701 - uvicorn.error - INFO - Application startup complete.
2025-08-30 02:11:09,078 - uvicorn.error - INFO - Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8008 (Press CTRL+C to quit)
2025-08-30 01:55:50,702 - uvicorn.error - INFO - Uvicorn running on http://0.0.0.0:8008 (Press CTRL+C to quit)
INFO: 127.0.0.1:52600 - "GET /api/v1/health HTTP/1.1" 200 OK
INFO: 127.0.0.1:52608 - "GET /api/v1/health HTTP/1.1" 200 OK
2025-08-30 01:56:15,715 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 01:56:15,881 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 01:56:21,625 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 5.908s (avg: 1.477s/image)
2025-08-30 01:56:21,626 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
INFO: 127.0.0.1:39480 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39488 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39500 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39516 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
2025-08-30 01:56:24,783 - app.core.batch_manager - INFO - Creating a new batch with 2 jobs.
2025-08-30 01:56:24,995 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 2개 이미지 인페인팅 수행
2025-08-30 01:56:39,252 - app.core.worker_manager - INFO - 'simple-lama' batch of 2 processed in 14.460s (avg: 7.230s/image)
2025-08-30 01:56:39,253 - app.core.batch_manager - INFO - Successfully processed batch of 2 jobs.
INFO: 127.0.0.1:39524 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39536 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
2025-08-30 01:56:39,367 - app.core.batch_manager - INFO - Creating a new batch with 2 jobs.
2025-08-30 01:56:39,469 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 2개 이미지 인페인팅 수행
2025-08-30 01:56:40,764 - app.core.worker_manager - INFO - 'simple-lama' batch of 2 processed in 1.396s (avg: 0.698s/image)
2025-08-30 01:56:40,765 - app.core.batch_manager - INFO - Successfully processed batch of 2 jobs.
INFO: 127.0.0.1:39546 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39550 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
2025-08-30 01:57:35,001 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 01:57:35,213 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 01:57:37,476 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.472s (avg: 0.618s/image)
2025-08-30 01:57:37,480 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
INFO: 127.0.0.1:39274 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39278 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39286 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39296 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
2025-08-30 01:57:37,511 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 01:57:37,735 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 01:57:39,686 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.173s (avg: 0.543s/image)
2025-08-30 01:57:39,687 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
INFO: 127.0.0.1:39308 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39322 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39330 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:39334 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
2025-08-30 01:57:47,368 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 01:57:47,620 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 01:57:49,769 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.399s (avg: 0.600s/image)
2025-08-30 01:57:49,770 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
INFO: 127.0.0.1:47538 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:47542 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:47554 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:47566 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
2025-08-30 01:57:49,800 - app.core.batch_manager - INFO - Creating a new batch with 4 jobs.
2025-08-30 01:57:50,022 - app.models.simple_lama - INFO - 실제 SimpleLama 모델로 4개 이미지 인페인팅 수행
2025-08-30 01:57:51,985 - app.core.worker_manager - INFO - 'simple-lama' batch of 4 processed in 2.184s (avg: 0.546s/image)
2025-08-30 01:57:51,986 - app.core.batch_manager - INFO - Successfully processed batch of 4 jobs.
INFO: 127.0.0.1:47580 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:47590 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:47604 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
INFO: 127.0.0.1:47608 - "POST /api/v1/inpaint HTTP/1.1" 200 OK
2025-08-30 02:11:09,089 - uvicorn.error - INFO - Uvicorn running on http://0.0.0.0:8008 (Press CTRL+C to quit)
INFO: 127.0.0.1:55558 - "GET /api/v1/health HTTP/1.1" 200 OK
INFO: 127.0.0.1:55560 - "GET /api/v1/health HTTP/1.1" 200 OK
INFO: 127.0.0.1:36726 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53708 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60012 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39570 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48768 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44610 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44116 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45482 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53298 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55100 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35256 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55510 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59790 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51514 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38750 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54862 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46646 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46656 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36272 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41276 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41282 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57580 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58304 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35488 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51250 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51262 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34784 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34788 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53174 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37074 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42532 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37912 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50782 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41282 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50348 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50614 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50620 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39554 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34472 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59332 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38170 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54408 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53164 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57394 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57410 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59078 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54256 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54262 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38444 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52920 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56504 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52406 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52412 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48756 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48766 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34636 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38454 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38934 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41628 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49770 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45282 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55420 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51390 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51404 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43614 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41008 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38196 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40018 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34270 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49372 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50038 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34032 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34036 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49796 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49812 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49718 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60908 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48864 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41666 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41674 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35000 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35008 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51984 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57428 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53860 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42404 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46700 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38100 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58730 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54074 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54088 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60366 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50934 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34926 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36874 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46600 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36062 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49560 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55354 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55364 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36702 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36706 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56446 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33032 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44762 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60008 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48852 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37748 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41326 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57200 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57872 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54214 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53410 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53424 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49892 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58442 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54808 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37762 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34838 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42518 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56664 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55072 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55076 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53762 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53766 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44150 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39358 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34764 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52880 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52830 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43032 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40018 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40024 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55202 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:32946 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55182 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37200 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51956 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52210 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52270 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52286 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51302 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51870 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46236 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59736 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57162 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37400 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51362 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44042 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44048 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49412 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49420 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41564 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41144 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47504 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58604 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38794 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36922 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57216 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57228 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39264 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55712 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59114 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57248 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39214 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39044 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33986 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40552 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40566 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45808 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34042 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54826 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38828 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57722 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56354 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36156 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36172 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56848 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56852 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39782 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46406 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58570 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42250 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48538 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51426 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38244 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58658 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58670 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41604 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52434 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57418 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40856 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41572 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53532 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56000 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56002 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41946 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49050 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34028 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49268 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40244 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49940 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49078 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49084 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35546 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35558 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46570 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44484 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44032 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56582 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43298 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59146 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50534 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51420 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51428 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46468 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51714 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44818 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46466 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54190 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57976 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47458 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47460 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45636 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46196 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33720 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58076 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46556 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49560 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48194 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36244 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42566 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46464 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36450 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58426 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60808 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51264 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53754 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53760 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56466 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34046 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58062 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46402 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39300 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33604 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54546 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54558 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43954 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43090 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56094 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47164 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53334 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58630 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48202 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33170 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50170 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48892 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48908 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40656 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58154 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46266 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33478 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37912 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53664 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53670 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59390 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41774 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52856 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57860 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56684 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38300 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45304 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60212 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60218 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46100 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49412 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44778 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36804 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55340 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37518 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58284 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60668 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57058 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45546 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45558 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56180 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43278 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57874 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50746 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41260 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33382 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34948 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34954 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49512 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51068 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49218 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33938 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57462 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48304 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47720 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47728 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37714 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59332 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59462 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45800 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57226 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35846 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43320 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37916 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49008 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36094 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36102 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59426 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44388 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41486 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49612 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57146 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39740 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46790 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46806 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47512 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43230 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53444 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34750 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39048 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52468 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48852 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48858 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48968 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44402 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51234 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51056 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41206 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46510 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38972 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51590 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35024 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52200 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52208 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36938 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46024 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35716 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42378 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54166 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54818 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53232 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53242 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40904 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41318 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51176 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34610 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52708 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54058 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42420 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42430 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33804 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39280 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53676 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53852 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36042 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54014 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53332 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36310 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35844 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40956 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40958 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51246 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39372 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34540 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36790 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58782 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37654 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51844 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58414 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58422 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34146 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52790 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46204 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37636 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37514 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53850 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53856 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51390 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46964 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57018 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39958 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56264 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40098 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47772 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53578 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48032 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50904 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50920 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34566 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49614 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46572 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42564 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44410 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46446 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33856 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55604 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55618 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43974 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42664 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51384 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58138 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47250 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41730 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36338 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45778 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34104 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56318 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33730 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37716 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39452 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48850 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:48862 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53762 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55588 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58852 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49540 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:40432 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58414 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58420 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54126 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50882 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33572 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53080 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56496 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46126 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56566 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33288 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33302 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37186 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37200 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35882 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58422 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51442 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54204 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56894 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52896 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42498 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58940 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58952 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58500 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44118 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54404 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51042 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53054 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46934 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46936 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:32962 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60000 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59632 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44440 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54052 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47242 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33616 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53566 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53580 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59032 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59046 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35516 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:49068 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59348 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60702 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52170 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53048 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51518 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42688 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42702 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:34804 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58830 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55590 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:52850 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46674 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44804 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50896 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50902 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47388 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:51336 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59850 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54708 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45978 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39996 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60744 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60760 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53322 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60648 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60662 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44348 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:55794 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:37678 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44958 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60594 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45856 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46264 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:46274 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54158 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:59522 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50704 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:41394 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:47508 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:33236 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45186 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45196 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:35298 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:57424 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:43936 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:42858 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39752 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39768 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:45450 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:50728 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38352 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58312 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:58326 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:36000 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:54230 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39140 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39142 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44058 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:39486 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:44454 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:53372 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:60494 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:56938 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38902 - "GET /api/v1/stats HTTP/1.1" 200 OK
INFO: 127.0.0.1:38904 - "GET /api/v1/stats HTTP/1.1" 200 OK

View File

@ -1 +1 @@
77869
81535

View File

@ -1,12 +1,622 @@
INFO: Started server process [78184]
Failed to initialize jtop: The jtop.service is not active. Please run:
sudo systemctl restart jtop.service
INFO: Started server process [81928]
INFO: Waiting for application startup.
Fan control not available
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8888 (Press CTRL+C to quit)
INFO: 127.0.0.1:52490 - "GET /api/simple HTTP/1.1" 200 OK
INFO: 127.0.0.1:52212 - "GET /api/simple HTTP/1.1" 200 OK
Task exception was never retrieved
future: <Task finished name='Task-4' coro=<health_check_and_restart() done, defined at /home/ckh08045/work/inpaintServer/app/monitoring/dashboard.py:2084> exception=AttributeError("module 'asyncio' has no attribute 'to_thread'")>
Traceback (most recent call last):
File "/home/ckh08045/work/inpaintServer/app/monitoring/dashboard.py", line 2094, in health_check_and_restart
response = await asyncio.to_thread(requests.get, health_url, timeout=10)
AttributeError: module 'asyncio' has no attribute 'to_thread'
INFO: 192.168.0.119:51988 - "GET / HTTP/1.1" 200 OK
INFO: ('192.168.0.119', 51999) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:51988 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:51989 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52012 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52013 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52012 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52013 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:52012 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52058 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52061 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: ('192.168.0.119', 52068) - "WebSocket /ws" [accepted]
INFO: 192.168.0.119:52013 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: connection closed
INFO: connection open
INFO: 192.168.0.119:52071 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52073 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52012 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52061 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:52058 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52071 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52073 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52071 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52073 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:52071 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52322 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52323 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: connection closed
INFO: ('192.168.0.119', 52269) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:52513 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52514 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52513 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:52325 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: connection closed
INFO: ('192.168.0.119', 52540) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:52650 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:52651 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52651 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:52650 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52736 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52739 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52970 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:52986 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:52988 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:52989 - "GET /api/performance-stats HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 53024) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:53198 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:53207 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:53212 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:53215 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 53256) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:53408 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:53411 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:53422 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:53423 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:53657 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:53666 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:53671 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:53672 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 53746) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:53957 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:53971 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:53975 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:53977 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 54029) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:54315 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:54323 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:54325 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:54326 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:54569 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:54570 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:54571 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:54572 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:54867 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:54872 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:54875 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:54876 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:55108 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:55110 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55111 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55112 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 55157) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:55384 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:55394 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55402 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55401 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:55632 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:55637 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55644 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55647 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:55866 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:55868 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55869 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55872 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:55866 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:55868 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55869 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:55866 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55868 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:55920 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55869 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:55920 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: 192.168.0.119:55977 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55978 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: connection closed
INFO: ('192.168.0.119', 55986) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:55920 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55977 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:55978 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:56048 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:56049 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55920 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:55978 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:56048 - "GET /api/performance-stats HTTP/1.1" 200 OK
모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Read timed out. (read timeout=2)
INFO: 192.168.0.119:56074 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:56226 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:56227 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:56228 - "GET /api/performance-stats HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 56285) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:56468 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:56470 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:56472 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:56473 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:56638 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:56642 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:56647 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:56648 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 56673) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:56843 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:56853 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:56855 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:56856 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 56941) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:57020 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:57033 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57036 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57037 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 57083) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:57222 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:57227 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57242 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57241 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:57414 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:57425 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57427 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57428 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 57457) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:57548 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:57550 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57554 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57557 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 57571) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:57670 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:57674 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57686 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57685 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:57797 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:57810 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57812 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57816 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 57833) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:57981 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:57983 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57985 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:57986 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 58003) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:58136 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:58140 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58147 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58149 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 58168) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:58234 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:58245 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58247 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58248 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:58397 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:58399 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58402 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58403 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 58426) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:58508 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:58515 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58519 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58520 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 58533) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:58619 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:58630 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58632 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58633 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 58663) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:58767 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:58775 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58781 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58782 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:58950 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:58952 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58955 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:58956 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 58962) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:59068 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:59069 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59070 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59071 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59068 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:59069 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59070 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59146 - "GET /api/performance-stats HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 59139) - "WebSocket /ws" [accepted]
INFO: 192.168.0.119:59068 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59069 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: connection open
INFO: 192.168.0.119:59068 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59146 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:59070 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59069 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59070 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59192 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59253 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59277 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 59272) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:59298 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59416 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:59425 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59432 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59433 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59547 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:59554 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59561 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59563 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:59686 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:59697 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59702 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59705 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 59726) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:59836 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:59840 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59850 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59851 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 59899) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:59994 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:59996 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59998 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:59999 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:60154 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:60159 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60165 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60166 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 60185) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:60299 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:60312 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60314 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60315 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 60341) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:60441 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:60447 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60448 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60443 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 60460) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:60580 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:60581 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60567 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60582 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:60731 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:60744 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60746 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60747 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 60758) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:60899 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:60901 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60906 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:60905 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 60919) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:60998 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:61003 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61015 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61020 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 61048) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:61170 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:61185 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61176 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61188 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:61282 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:61287 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61294 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61298 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 61318) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:61398 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:61412 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61416 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61417 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 61433) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:61544 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:61551 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61554 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61555 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 61572) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:61651 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:61653 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61657 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61663 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:61768 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:61783 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61789 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61790 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 61805) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:61916 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:61922 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61923 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:61926 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 61949) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:62081 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62085 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62096 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62097 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 62132) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:62182 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62191 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62197 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62198 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:62313 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62321 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62327 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62328 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 62363) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:62520 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62530 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62533 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62534 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 62565) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:62682 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62684 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62695 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62697 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 62737) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:62862 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62870 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62874 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62873 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:62873 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62874 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62870 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62862 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:62870 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62874 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62873 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62862 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:62873 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62874 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: ('192.168.0.119', 62961) - "WebSocket /ws" [accepted]
INFO: 192.168.0.119:62873 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: connection closed
INFO: connection open
INFO: 192.168.0.119:62874 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:62959 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62873 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:62959 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:63029 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63045 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:62959 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:62959 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:63045 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:63029 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63047 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: connection closed
INFO: ('192.168.0.119', 63184) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:63249 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:63261 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63263 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63264 - "GET /api/system-alerts HTTP/1.1" 200 OK
모델 성능 통계 조회 중 예외 발생: HTTPConnectionPool(host='0.0.0.0', port=8008): Read timed out. (read timeout=2)
INFO: 192.168.0.119:63451 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:63457 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63462 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63468 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:63665 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:63674 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63681 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63683 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 63710) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:63832 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:63838 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63843 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:63845 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 63889) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:63991 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:63998 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64006 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64007 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:64138 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:64142 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64149 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64150 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 64164) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:64278 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:64287 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64289 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64290 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 64316) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:64504 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:64505 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64510 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64511 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 64519) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:64589 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:64600 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64604 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64606 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:64659 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:64669 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64676 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64677 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 64691) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:64715 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:64719 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64726 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64731 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 64756) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:64864 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:64877 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64879 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:64880 - "GET /api/system-alerts HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 64913) - "WebSocket /ws" [accepted]
INFO: connection open
INFO: 192.168.0.119:65047 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:65049 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65057 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65059 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65179 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:65183 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65184 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65185 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65179 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:65183 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
브로드캐스트 오류: list.remove(x): x not in list
INFO: connection closed
INFO: ('192.168.0.119', 65209) - "WebSocket /ws" [accepted]
INFO: 192.168.0.119:65184 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: connection open
INFO: 192.168.0.119:65183 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65243 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65179 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65243 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:65183 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65184 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65179 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65184 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65179 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: ('192.168.0.119', 65278) - "WebSocket /ws" [accepted]
INFO: 192.168.0.119:65179 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:65184 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: connection open
INFO: 192.168.0.119:65283 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65340 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65341 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65341 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65340 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65385 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:65399 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:65406 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: 192.168.0.119:49190 - "GET /api/model-usage-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:49194 - "GET /api/system-alerts HTTP/1.1" 200 OK
INFO: 192.168.0.119:49203 - "GET /api/performance-stats HTTP/1.1" 200 OK
INFO: 192.168.0.119:49204 - "GET /api/logs?lines=50 HTTP/1.1" 200 OK
INFO: ('192.168.0.119', 49159) - "WebSocket /ws" [accepted]
INFO: connection closed
INFO: connection closed
INFO: connection open
INFO: ('192.168.0.119', 49234) - "WebSocket /ws" [accepted]

View File

@ -1 +1 @@
78184
81928

View File

@ -6,70 +6,70 @@
"workers_by_status": {
"idle": [
{
"id": "worker_1daac568",
"id": "worker_1cb20176",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_c66b7d6b",
"id": "worker_275875fe",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_cefffbad",
"id": "worker_22db34f9",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_009a14df",
"id": "worker_bc8befaf",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_335c1fa5",
"id": "worker_d801fb26",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_2767d405",
"id": "worker_6afb49c9",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_8ec98a8f",
"id": "worker_0b612d23",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_1c42e06e",
"id": "worker_02e18c3d",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_3124fda8",
"id": "worker_0e6ebed3",
"status": "idle",
"task_count": 0,
"error_count": 0,
"last_task_at": null
},
{
"id": "worker_074f5bdb",
"id": "worker_bee8c543",
"status": "idle",
"task_count": 0,
"error_count": 0,
@ -106,38 +106,38 @@
}
},
"api_stats": {
"total_requests": 26,
"successful_requests": 26,
"total_requests": 533,
"successful_requests": 533,
"failed_requests": 0,
"success_rate": 100.0,
"endpoint_usage": {
"GET /api/v1/health": 2,
"POST /api/v1/inpaint": 24
"GET /api/v1/stats": 531
},
"endpoint_stats": {
"GET /api/v1/health": {
"count": 2,
"avg_time": 0.0014368295669555664,
"min_time": 0.0011837482452392578,
"max_time": 0.001689910888671875,
"avg_time": 0.0027375221252441406,
"min_time": 0.0012462139129638672,
"max_time": 0.004228830337524414,
"current_concurrent": 0
},
"POST /api/v1/inpaint": {
"count": 24,
"avg_time": 8.082906911770502,
"min_time": 2.5534043312072754,
"max_time": 25.198312282562256,
"GET /api/v1/stats": {
"count": 531,
"avg_time": 0.0032375192642211913,
"min_time": 0.0019419193267822266,
"max_time": 0.007139682769775391,
"current_concurrent": 0
}
},
"average_response_time": 7.461255366985615,
"min_response_time": 0.0011837482452392578,
"max_response_time": 25.198312282562256,
"average_response_time": 0.0032355780896728974,
"min_response_time": 0.001142740249633789,
"max_response_time": 0.011610746383666992,
"current_concurrent": 0,
"max_concurrent": 8,
"requests_per_second": 0.13373595939047092,
"uptime": 194.41293215751648,
"max_concurrent": 1,
"requests_per_second": 0.02162773814159873,
"uptime": 24644.278403520584,
"recent_errors": []
},
"timestamp": 1756486704.2948773
"timestamp": 1756512049.7289712
}