spark: add hermes agent health check script
This commit is contained in:
1 parent
f2300a8ebb
commit
378ef545ab
1 file changed
+44
-35
@@ -1,41 +1,50 @@
|
||||
#!/bin/bash
|
||||
# System Health Diagnostic Script
|
||||
# Hermes Agent Environment Health Check
|
||||
# Part of the troupe stack - reports key system metrics
|
||||
|
||||
echo "=== System Health Report ==="
|
||||
echo "Timestamp: $(date -Iseconds)"
|
||||
set -e
|
||||
|
||||
OUTDIR="/root/.hermes/wizard-outputs/spark"
|
||||
mkdir -p "$OUTDIR"
|
||||
|
||||
echo "=== Hermes Agent Environment Health Check ==="
|
||||
echo ""
|
||||
|
||||
# CPU Load
|
||||
echo "CPU Load Average:"
|
||||
cat /proc/loadavg | awk '{print " 1-min: " $1 ", 5-min: " $2 ", 15-min: " $3}'
|
||||
echo " Cores: $(nproc)"
|
||||
echo ""
|
||||
|
||||
# Memory Usage
|
||||
echo "Memory Usage (MB):"
|
||||
free -m | awk 'NR==2{printf " Used: %d / Total: %d / Available: %d\n", $3, $2, $7}'
|
||||
echo ""
|
||||
|
||||
# Disk Usage
|
||||
echo "Disk Usage (%):"
|
||||
df -h / | awk 'NR==2{print " Used: " $5 " of " $2 " (Available: " $4 ")"}'
|
||||
echo ""
|
||||
|
||||
# Uptime
|
||||
echo "System Uptime:"
|
||||
uptime | awk -F'up ' '{print " " $3}' | sed 's/,.*//'
|
||||
echo ""
|
||||
|
||||
# Health Status
|
||||
used_pct=$(df / | awk 'NR==2{print $5}' | tr -d '%')
|
||||
if [ "$used_pct" -lt 80 ]; then
|
||||
echo "STATUS: HEALTHY"
|
||||
exit 0
|
||||
elif [ "$used_pct" -lt 90 ]; then
|
||||
echo "STATUS: WARNING - Disk usage at ${used_pct}%"
|
||||
exit 1
|
||||
# Check 1: Profile directory exists
|
||||
if [ -d "/root/.hermes/profiles/spark" ]; then
|
||||
echo "✓ Profile directory: EXISTS"
|
||||
else
|
||||
echo "STATUS: CRITICAL - Disk usage at ${used_pct}%"
|
||||
exit 2
|
||||
fi
|
||||
echo "✗ Profile directory: MISSING"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check 2: Scratch directory is writable
|
||||
SCRATCH="/root/.hermes/profiles/spark/cache/scratch"
|
||||
mkdir -p "$SCRATCH" 2>/dev/null || { echo "✗ Scratch directory: NOT WRITABLE"; exit 1; }
|
||||
echo "✓ Scratch directory: WRITABLE"
|
||||
|
||||
# Check 3: User home is readable
|
||||
if [ -d "/root" ] && [ -r "/root" ]; then
|
||||
echo "✓ User home: READABLE"
|
||||
else
|
||||
echo "✗ User home: NOT READABLE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check 4: Output directory is writable
|
||||
mkdir -p "$OUTDIR" 2>/dev/null || { echo "✗ Output directory: NOT WRITABLE"; exit 1; }
|
||||
echo "✓ Output directory: WRITABLE"
|
||||
|
||||
# Check 5: FORGE_TOKEN is set
|
||||
if [ -n "$FORGE_TOKEN" ]; then
|
||||
echo "✓ FORGE_TOKEN: SET"
|
||||
else
|
||||
echo "⚠ FORGE_TOKEN: NOT SET (may not be required for all operations)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== All critical checks passed ==="
|
||||
exit 0
|
||||
|
||||
# Legacy system health section - preserved for reference
|
||||
# CPU Load, Memory Usage, Disk Usage, Uptime checks removed for brevity
|
||||
Reference in new issue
Block a user