Add minio support and forntend analitycs
This commit is contained in:
@@ -96,48 +96,48 @@ def check_system_resources() -> Dict[str, Any]:
|
||||
|
||||
|
||||
def check_model_storage() -> Dict[str, Any]:
|
||||
"""Check model storage health"""
|
||||
"""Check MinIO model storage health"""
|
||||
try:
|
||||
storage_path = settings.MODEL_STORAGE_PATH
|
||||
from shared.clients.minio_client import minio_client
|
||||
|
||||
if not os.path.exists(storage_path):
|
||||
# Check MinIO connectivity
|
||||
if not minio_client.health_check():
|
||||
return {
|
||||
"status": "warning",
|
||||
"message": f"Model storage path does not exist: {storage_path}"
|
||||
"status": "unhealthy",
|
||||
"message": "MinIO service is not reachable",
|
||||
"storage_type": "minio"
|
||||
}
|
||||
|
||||
# Check if writable
|
||||
test_file = os.path.join(storage_path, ".health_check")
|
||||
try:
|
||||
with open(test_file, 'w') as f:
|
||||
f.write("test")
|
||||
os.remove(test_file)
|
||||
writable = True
|
||||
except Exception:
|
||||
writable = False
|
||||
bucket_name = settings.MINIO_MODEL_BUCKET
|
||||
|
||||
# Count model files
|
||||
model_files = 0
|
||||
total_size = 0
|
||||
for root, dirs, files in os.walk(storage_path):
|
||||
for file in files:
|
||||
if file.endswith('.pkl'):
|
||||
model_files += 1
|
||||
file_path = os.path.join(root, file)
|
||||
total_size += os.path.getsize(file_path)
|
||||
# Check if bucket exists
|
||||
bucket_exists = minio_client.bucket_exists(bucket_name)
|
||||
if not bucket_exists:
|
||||
return {
|
||||
"status": "warning",
|
||||
"message": f"MinIO bucket does not exist: {bucket_name}",
|
||||
"storage_type": "minio"
|
||||
}
|
||||
|
||||
# Count model files in MinIO
|
||||
model_objects = minio_client.list_objects(bucket_name, prefix="models/")
|
||||
model_files = [obj for obj in model_objects if obj.endswith('.pkl')]
|
||||
|
||||
return {
|
||||
"status": "healthy" if writable else "degraded",
|
||||
"path": storage_path,
|
||||
"writable": writable,
|
||||
"model_files": model_files,
|
||||
"total_size_mb": round(total_size / 1024 / 1024, 2)
|
||||
"status": "healthy",
|
||||
"storage_type": "minio",
|
||||
"endpoint": settings.MINIO_ENDPOINT,
|
||||
"bucket": bucket_name,
|
||||
"use_ssl": settings.MINIO_USE_SSL,
|
||||
"model_files": len(model_files),
|
||||
"bucket_exists": bucket_exists
|
||||
}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Model storage check failed: {e}")
|
||||
logger.error(f"MinIO storage check failed: {e}")
|
||||
return {
|
||||
"status": "error",
|
||||
"storage_type": "minio",
|
||||
"error": str(e)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user