Troubleshooting¶
Soluções para problemas comuns no sistema VIG-IA.
Dashboard não inicia¶
# Ver logs detalhados
docker compose logs --tail=50 dnci-dashboard
# Verificar se a porta está em uso
ss -tlnp | grep 5000
Solução: Se a porta estiver em uso, altere DASHBOARD_PORT no .env e reinicie.
Container "unhealthy"¶
# Verificar saúde
docker compose ps
# Testar health check manualmente
curl -v http://localhost:5000/api/health
# Ver logs de health check
docker inspect --format='{{json .State.Health}}' dnci-dashboard | python -m json.tool
Causa comum: O health check tem timeout de 30s. Se o Uvicorn (single-worker) estiver ocupado com uma query longa, o check pode falhar temporariamente.
Erro de conexão com banco¶
# Testar conectividade do container
docker compose exec dnci-dashboard python -c "
from backend.database import get_connection
conn = get_connection()
print('DNCI OK')
conn.close()
"
# Verificar credenciais
docker compose exec dnci-dashboard env | grep DB
Soluções:
- Verificar IPs dos bancos no .env
- Confirmar que o firewall permite acesso às portas 5432
- Verificar que o usuário tem permissão de acesso
Watchdog parado¶
# Ver logs do watchdog
docker compose logs --tail=100 dnci-monitor-watchdog
# Reiniciar apenas o watchdog
docker compose restart dnci-monitor
Logs crescendo muito¶
Os logs são configurados com rotação automática (10MB, 3 arquivos). Se mesmo assim estiverem grandes:
# Ver uso de disco do Docker
docker system df
# Limpar logs antigos
docker system prune --volumes
# Limpar apenas os logs de um container
truncate -s 0 $(docker inspect --format='{{.LogPath}}' dnci-dashboard)
Erro de permissão nos volumes¶
Dashboard lento¶
Possíveis causas:
- Muitas queries simultâneas — O dashboard usa Uvicorn single-worker; queries longas bloqueiam outros requests
- Banco sobrecarregado — Verificar com
docker statsepg_stat_activity - Rede lenta para DTW — O banco DTW pode estar em um servidor remoto
# Verificar uso de recursos
docker stats
# Ver queries ativas no PostgreSQL
docker compose exec dnci-dashboard python -c "
from backend.database import execute_query
rows = execute_query('SELECT pid, state, query FROM pg_stat_activity WHERE datname = current_database()')
for r in rows: print(r)
"
Erro de Conexão: "No route to host" para o DTW (172.20.52.206)¶
Sintoma: O watchdog ou dashboard loga:
sqlalchemy.exc.OperationalError: connection to server at "172.20.52.206", port 5432 failed: No route to host
Causa: O Docker Desktop / WSL2 criou uma rede de bridge interna (ex: rede antiga ou órfã) na sub-rede 172.20.0.0/16. Isso faz com que o kernel tente rotear pacotes para a rede bridge do Docker em vez da interface de rede externa/VPN hospitalar.
Diagnóstico e Solução:
# 1. Inspecionar todas as redes Docker em busca do range 172.20.x.x
docker network inspect (docker network ls -q) | Select-String -Pattern "Subnet|Name"
# 2. Identificar a rede com subnet "172.20.0.0/16" (ex: postgres17_default)
# 3. Remover a rede conflitante
docker network rm <nome_da_rede_conflitante>
# 4. Reiniciar o container do monitor
docker restart dnci-monitor-watchdog
Erro de IA: "Error code: 404 - Model not found"¶
Sintoma: O watchdog exibe nos logs:
ERROR - services.openai_service: Erro ao chamar OpenAI API: Error code: 404 - {'detail': "Model '...' not found. Use GET /v1/models to list available models."}
Causa: O modelo especificado em AI_GATEWAY_MODEL não existe no gateway hub.qi140.ai.
Solução: 1. Consulte os modelos válidos disponíveis no hub:
python -c "import urllib.request, json; req = urllib.request.Request('https://hub.qi140.ai/v1/models', headers={'Authorization': 'Bearer <SUA_CHAVE_AI_GATEWAY>'}); print(json.loads(urllib.request.urlopen(req).read().decode('utf-8')))"
.env, configure um modelo aceito:
3. Ou utilize a OpenAI oficial configurando:
4. Reinicie os containers: docker compose up -d --force-recreate.