Files
foxhunt/scripts/quick_health_check.sh
jgrusewski 8d89fe80ff chore: Second cleanup wave - organize root directory
- Archive: 85 agent .txt files → docs/archive/agents/legacy_txt/
- Scripts: Move 110 shell scripts → scripts/ (keep deploy.sh in root)
- Models: Move 18 .safetensors → ml/models/checkpoints/training_artifacts/
- Delete: 34 directories (~33GB freed) - target/, coverage_*, test artifacts
- Build: Clean 14 build artifacts (.rlib, .o, .pid, binaries)
- Tests: Move 14 .rs files → tests/standalone/
- SQL: Move 5 files → sql/ (keep init-db*.sql for Docker)
- Wave 153: Archive to docs/archive/historical/wave153/
- Docs: Archive 9 markdown files to wave_d/reports/ and historical/

Total impact: ~34GB freed (both waves), root directory cleaned from 583 to ~40 essential files
Directory count reduced from 65 to 31 (52% reduction)
All historical data preserved in organized archive structure
2025-10-30 01:26:02 +01:00

135 lines
3.8 KiB
Bash
Executable File

#!/bin/bash
# Quick Health Check - Simplified version
# Wave 75 Agent 6
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
PASSED=0
FAILED=0
WARNINGS=0
echo -e "${BLUE}=== Foxhunt HFT Quick Health Check ===${NC}\n"
# 1. gRPC Services
echo -e "${BLUE}[1/4] Checking gRPC Services...${NC}"
services=(
"Trading Service:50051"
"Backtesting Service:50052"
"ML Training Service:50053"
"API Gateway:50050"
)
for svc in "${services[@]}"; do
IFS=':' read -r name port <<< "$svc"
if timeout 2 grpcurl -plaintext localhost:$port list >/dev/null 2>&1; then
echo -e " ${GREEN}${NC} $name (port $port)"
((PASSED++))
else
echo -e " ${RED}${NC} $name (port $port) - NOT RESPONDING"
((FAILED++))
fi
done
# 2. Infrastructure Services
echo -e "\n${BLUE}[2/4] Checking Infrastructure Services...${NC}"
# PostgreSQL
if PGPASSWORD=test_password psql -h localhost -p 5433 -U foxhunt_test -d foxhunt_test -c "SELECT 1;" >/dev/null 2>&1; then
echo -e " ${GREEN}${NC} PostgreSQL (port 5433)"
((PASSED++))
else
echo -e " ${RED}${NC} PostgreSQL (port 5433)"
((FAILED++))
fi
# Redis
if docker exec api_gateway_test_redis redis-cli PING 2>&1 | grep -q "PONG"; then
echo -e " ${GREEN}${NC} Redis (port 6380)"
((PASSED++))
else
echo -e " ${RED}${NC} Redis (port 6380)"
((FAILED++))
fi
# Vault
if timeout 2 curl -s http://localhost:8200/v1/sys/health | jq -e '.sealed == false' >/dev/null 2>&1; then
echo -e " ${GREEN}${NC} Vault (port 8200) - UNSEALED"
((PASSED++))
elif timeout 2 curl -s http://localhost:8200/v1/sys/health >/dev/null 2>&1; then
echo -e " ${YELLOW}${NC} Vault (port 8200) - SEALED"
((WARNINGS++))
else
echo -e " ${RED}${NC} Vault (port 8200)"
((FAILED++))
fi
# Prometheus
if timeout 2 curl -s http://localhost:9099/-/healthy | grep -q "Prometheus"; then
echo -e " ${GREEN}${NC} Prometheus (port 9099)"
((PASSED++))
else
echo -e " ${RED}${NC} Prometheus (port 9099)"
((FAILED++))
fi
# Grafana
if timeout 2 curl -s http://localhost:3000/api/health | jq -e '.database == "ok"' >/dev/null 2>&1; then
echo -e " ${GREEN}${NC} Grafana (port 3000)"
((PASSED++))
else
echo -e " ${YELLOW}${NC} Grafana (port 3000) - responding but may have issues"
((WARNINGS++))
fi
# 3. Docker Containers
echo -e "\n${BLUE}[3/4] Checking Docker Containers...${NC}"
unhealthy=$(docker ps --filter "health=unhealthy" --format "{{.Names}}" 2>/dev/null)
if [ -z "$unhealthy" ]; then
echo -e " ${GREEN}${NC} No unhealthy containers"
((PASSED++))
else
echo -e " ${RED}${NC} Unhealthy: $unhealthy"
((FAILED++))
fi
# 4. Service Processes
echo -e "\n${BLUE}[4/4] Checking Service Processes...${NC}"
procs=("trading_service" "backtesting_service" "ml_training_service")
for proc in "${procs[@]}"; do
if pgrep -f "$proc" >/dev/null; then
pid=$(pgrep -f "$proc" | head -1)
cpu=$(ps -p $pid -o %cpu --no-headers 2>/dev/null | tr -d ' ' || echo "?")
mem=$(ps -p $pid -o %mem --no-headers 2>/dev/null | tr -d ' ' || echo "?")
echo -e " ${GREEN}${NC} $proc (PID: $pid, CPU: ${cpu}%, MEM: ${mem}%)"
((PASSED++))
else
echo -e " ${RED}${NC} $proc - NOT RUNNING"
((FAILED++))
fi
done
# Summary
TOTAL=$((PASSED + FAILED + WARNINGS))
echo -e "\n${BLUE}=== Summary ===${NC}"
echo -e "Total Checks: $TOTAL"
echo -e "${GREEN}Passed: $PASSED${NC}"
echo -e "${YELLOW}Warnings: $WARNINGS${NC}"
echo -e "${RED}Failed: $FAILED${NC}"
if [ $FAILED -eq 0 ]; then
echo -e "\n${GREEN}Overall Status: HEALTHY${NC}"
exit 0
elif [ $FAILED -lt 5 ]; then
echo -e "\n${YELLOW}Overall Status: DEGRADED${NC}"
exit 1
else
echo -e "\n${RED}Overall Status: UNHEALTHY${NC}"
exit 2
fi