- 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
95 lines
4.0 KiB
Bash
Executable File
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"
|