Verification¶
Validate that your LogSys deployment is working correctly.
Health Checks¶
API Health¶
Database Connectivity¶
curl http://localhost:8000/api/monitoring/health
# Expected:
# {
# "postgres": {"status": "ok", "latency_ms": 1.2},
# "redis": {"status": "ok", "latency_ms": 0.4}
# }
Kafka Topics¶
docker compose exec kafka-broker \
kafka-topics.sh --bootstrap-server localhost:9092 --list
# Expected topics:
# raw_logs
# raw_metrics
# raw_traces
# raw_events
# canonical-events
# dlq
Collector Status¶
curl http://localhost:8000/api/monitoring/collectors
# Expected: JSON with status per collector (jira, prometheus, azuredevops, gitlab_webhook)
ML Service¶
curl http://localhost:8001/health
# Expected: {"status":"healthy","model_loaded":true,"model_version":"roberta_v1.1"}
Functional Verification¶
1. Send Test Event via Vector¶
curl -X POST http://localhost:8686 \
-H "Content-Type: text/plain" \
-d "ERROR: Connection timeout to database at 2026-01-15T10:30:00Z"
2. Verify Event in API¶
# Wait 2-3 seconds for processing
curl "http://localhost:8000/api/logs?limit=1&priority=P1"
# Should return the event with P1 priority
3. Check Dashboard¶
- Open http://localhost:5173
- Login (admin@alertops.com / Admin@2026!)
- Navigate to Monitoring page
- Verify the test event appears in the table
4. Test AI Insights¶
curl http://localhost:8000/api/ai-insights/engine
# Should return full insight snapshot with RCA, anomalies, recommendations
5. Verify Real-time Updates¶
- Open browser DevTools → Network → WS
- Connect to
ws://localhost:8000/ws/kpis - Send another test event
- Verify
kpi:snapshotorevents:newmessage received
Automated Verification Script¶
#!/bin/bash
# verify-deployment.sh
set -e
echo "🔍 Verifying LogSys deployment..."
checks=(
"curl -sf http://localhost:8000/health | grep -q '\"status\":\"ok\"' && echo '✅ API health' || echo '❌ API health'"
"curl -sf http://localhost:8000/api/monitoring/health | grep -q '\"status\":\"ok\"' && echo '✅ DB/Redis health' || echo '❌ DB/Redis health'"
"curl -sf http://localhost:8001/health | grep -q '\"status\":\"healthy\"' && echo '✅ ML service' || echo '❌ ML service'"
"docker compose ps --format 'table {{.Name}}\t{{.Status}}' | grep -q 'Up' && echo '✅ All containers running' || echo '❌ Containers not running'"
)
for check in "${checks[@]}"; do
eval "$check"
done
echo ""
echo "📊 Sending test event..."
curl -sf -X POST http://localhost:8686 \
-H "Content-Type: text/plain" \
-d "ERROR: Test event for verification $(date)" > /dev/null
sleep 3
echo "🔍 Checking event processing..."
curl -sf "http://localhost:8000/api/logs?limit=1&search=verification" | grep -q "verification" \
&& echo "✅ Event processed and queryable" \
|| echo "❌ Event not found"
echo ""
echo "🎉 Verification complete!"
Troubleshooting Failed Checks¶
| Check Failed | Likely Cause | Action |
|---|---|---|
| API health | API not started | docker compose logs api |
| DB/Redis health | Postgres/Redis not ready | Check healthchecks, wait longer |
| ML service | Model not loaded | docker compose logs ml-service |
| Containers not running | Port conflicts, OOM | docker compose ps -a, check logs |
| Event not processed | Pipeline error | docker compose logs consumer-pipeline |
| WebSocket fails | Port 8000 conflict, proxy issue | Check Nginx/Caddy config |
Performance Baseline¶
After verification, run a quick load test:
# Send 1000 events at ~100/sec
python devtools/webhook_simulator.py --file ./sample-logs.txt --rate 100 --count 1000
# Monitor throughput
watch -n 2 'curl -s http://localhost:8000/api/kpis | jq ".events_per_second"'
Expected: > 1,500 events/sec sustained on modest hardware.