Files
momentry_core/monitor_dashboard.sh
Warren b54c2def30 feat: add migrations, test scripts, and utility tools
- Add database migrations (006-028) for face recognition, identity, file_uuid
- Add test scripts for ASR, face, search, processing
- Add portal frontend (Tauri)
- Add config, benchmark, and monitoring utilities
- Add model checkpoints and pretrained model references
2026-04-30 15:11:53 +08:00

95 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
# Momentry Production Monitoring Dashboard
# Simple CLI dashboard for monitoring production deployment
API_KEY="muser_29dd336ea8d44b9badbc650d503b0348_1774620247_b098ff47"
API_URL="http://localhost:3002"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Header
echo -e "${BLUE}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${BLUE}║ MOMENTRY PRODUCTION MONITORING ║${NC}"
echo -e "${BLUE}╠══════════════════════════════════════════════════════════════╣${NC}"
# Health Check
echo -e "${YELLOW}📊 System Health:${NC}"
health_response=$(curl -s -H "X-API-Key: $API_KEY" "$API_URL/health")
if [ $? -eq 0 ]; then
status=$(echo "$health_response" | jq -r '.status')
version=$(echo "$health_response" | jq -r '.version')
uptime_ms=$(echo "$health_response" | jq -r '.uptime_ms')
uptime_sec=$((uptime_ms / 1000))
uptime_min=$((uptime_sec / 60))
uptime_hr=$((uptime_min / 60))
echo -e " Status: ${GREEN}$status${NC}"
echo -e " Version: $version"
echo -e " Uptime: ${uptime_hr}h ${uptime_min%60}m ${uptime_sec%60}s"
else
echo -e " Status: ${RED}API Unreachable${NC}"
fi
# Videos Count
echo -e "\n${YELLOW}🎬 Video Assets:${NC}"
videos_response=$(curl -s -H "X-API-Key: $API_KEY" "$API_URL/api/v1/videos")
if [ $? -eq 0 ]; then
video_count=$(echo "$videos_response" | jq -r '.videos | length')
echo -e " Total Videos: ${GREEN}$video_count${NC}"
# Show recent videos
echo -e " Recent Videos:"
echo "$videos_response" | jq -r '.videos[-3:] | .[] | " - \(.file_name) (\(.duration | floor)s)"'
else
echo -e " ${RED}Failed to fetch videos${NC}"
fi
# System Status
echo -e "\n${YELLOW}⚙️ System Resources:${NC}"
system_status=$(cd /Users/accusys/momentry_core_0.1 && export QDRANT_URL=http://localhost:6333 && export QDRANT_API_KEY=Test3200Test3200Test3200 && export QDRANT_COLLECTION=chunks_v3 && cargo run --bin momentry -- system 2>/dev/null | tail -10)
if [ $? -eq 0 ]; then
echo "$system_status"
else
echo -e " ${RED}Failed to get system status${NC}"
fi
# Service Status
echo -e "\n${YELLOW}🔧 Service Status:${NC}"
services=("postgresql@18" "redis" "mariadb" "mongodb" "qdrant" "caddy" "gitea" "sftpgo" "php-fpm" "n8n")
for service in "${services[@]}"; do
if brew services list | grep -q "$service.*started"; then
echo -e " $service: ${GREEN}✓ Running${NC}"
else
echo -e " $service: ${RED}✗ Stopped${NC}"
fi
done
# Momentry Processes
echo -e "\n${YELLOW}🚀 Momentry Processes:${NC}"
momentry_procs=$(ps aux | grep momentry | grep -v grep | grep -v "monitor_dashboard")
if [ -n "$momentry_procs" ]; then
echo "$momentry_procs" | while read line; do
proc_name=$(echo "$line" | awk '{print $11, $12}')
echo -e " ${GREEN}${NC} $proc_name"
done
else
echo -e " ${RED}No Momentry processes found${NC}"
fi
# Footer
echo -e "${BLUE}╠══════════════════════════════════════════════════════════════╣${NC}"
echo -e "${BLUE}║ API Endpoint: $API_URL${NC}"
echo -e "${BLUE}║ API Key: ${API_KEY:0:20}... ║${NC}"
echo -e "${BLUE}╚══════════════════════════════════════════════════════════════╝${NC}"
echo -e "\n${YELLOW}📈 Monitoring Commands:${NC}"
echo -e " Run './monitor_dashboard.sh' to refresh"
echo -e " View logs: tail -f /Users/accusys/momentry/log/momentry_api.log"
echo -e " System status: cargo run --bin momentry -- system"
echo -e " API test: curl -H \"X-API-Key: \$API_KEY\" $API_URL/health"