Update app.py
Browse files
app.py
CHANGED
|
@@ -1376,14 +1376,30 @@ async def restart_space(request: Request):
|
|
| 1376 |
# ---- Status endpoint (no auth needed — for frontend health checks) ----
|
| 1377 |
@app.get("/status")
|
| 1378 |
async def get_status():
|
| 1379 |
-
|
|
|
|
| 1380 |
try:
|
| 1381 |
-
|
| 1382 |
-
|
| 1383 |
-
|
| 1384 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1385 |
except:
|
| 1386 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1387 |
|
| 1388 |
kb_files = glob.glob(os.path.join(KNOWLEDGE_DIR, "*.txt"))
|
| 1389 |
chunks = vectorstore.index.ntotal if vectorstore else 0
|
|
|
|
| 1376 |
# ---- Status endpoint (no auth needed — for frontend health checks) ----
|
| 1377 |
@app.get("/status")
|
| 1378 |
async def get_status():
|
| 1379 |
+
# Read container-level memory from /sys/fs/cgroup (accurate for HF Spaces)
|
| 1380 |
+
# psutil reads the host machine memory which is misleading on shared containers
|
| 1381 |
try:
|
| 1382 |
+
# cgroup v2 (HF Spaces uses this)
|
| 1383 |
+
with open('/sys/fs/cgroup/memory.current') as f:
|
| 1384 |
+
mem_used_bytes = int(f.read().strip())
|
| 1385 |
+
with open('/sys/fs/cgroup/memory.max') as f:
|
| 1386 |
+
val = f.read().strip()
|
| 1387 |
+
mem_total_bytes = int(val) if val != 'max' else 16 * 1024**3 # 16GB default
|
| 1388 |
+
mem_used_mb = round(mem_used_bytes / 1024 / 1024)
|
| 1389 |
+
mem_total_mb = round(mem_total_bytes / 1024 / 1024)
|
| 1390 |
+
mem_pct = round(mem_used_bytes / mem_total_bytes * 100)
|
| 1391 |
except:
|
| 1392 |
+
# Fallback: try cgroup v1
|
| 1393 |
+
try:
|
| 1394 |
+
with open('/sys/fs/cgroup/memory/memory.usage_in_bytes') as f:
|
| 1395 |
+
mem_used_bytes = int(f.read().strip())
|
| 1396 |
+
with open('/sys/fs/cgroup/memory/memory.limit_in_bytes') as f:
|
| 1397 |
+
mem_total_bytes = int(f.read().strip())
|
| 1398 |
+
mem_used_mb = round(mem_used_bytes / 1024 / 1024)
|
| 1399 |
+
mem_total_mb = round(mem_total_bytes / 1024 / 1024)
|
| 1400 |
+
mem_pct = round(mem_used_bytes / mem_total_bytes * 100)
|
| 1401 |
+
except:
|
| 1402 |
+
mem_used_mb = mem_total_mb = mem_pct = 0
|
| 1403 |
|
| 1404 |
kb_files = glob.glob(os.path.join(KNOWLEDGE_DIR, "*.txt"))
|
| 1405 |
chunks = vectorstore.index.ntotal if vectorstore else 0
|