torxyton's picture
feat: Implementa estrutura completa de testes com pytest
b9c68d4
# Scripts de Análise Avançada de Logs
Este diretório contém scripts especializados para análise e monitoramento de logs da aplicação, desenvolvidos especificamente para auxiliar desenvolvedores na identificação e resolução de problemas.
## 📁 Estrutura dos Scripts
### 1. `advanced_log_analyzer.py`
**Análise Retrospectiva Detalhada**
Script principal para análise completa dos logs armazenados no banco de dados. Fornece relatórios detalhados sobre:
- Distribuição de logs por nível e módulo
- Detecção de erros e warnings
- Problemas de importação de módulos
- Análise de performance
- Timeline de atividade
- Eventos do Gradio
### 2. `realtime_monitor.py`
**Monitoramento em Tempo Real**
Monitor que acompanha os logs em tempo real e alerta sobre problemas críticos:
- Alertas instantâneos para erros críticos
- Detecção de problemas de performance
- Monitoramento de erros de importação
- Interface colorida no terminal
- Buffer de últimos problemas detectados
## 🚀 Como Usar
### Análise Retrospectiva
```bash
# Análise básica das últimas 24 horas
python scripts/log_analysis/advanced_log_analyzer.py
# Análise das últimas 6 horas
python scripts/log_analysis/advanced_log_analyzer.py --hours 6
# Salvar relatório em arquivo
python scripts/log_analysis/advanced_log_analyzer.py --output relatorio_logs.txt
# Exportar análise em JSON
python scripts/log_analysis/advanced_log_analyzer.py --json analise_logs.json
# Especificar caminho do banco de dados
python scripts/log_analysis/advanced_log_analyzer.py --db-path logs/application.db
# Modo silencioso (apenas erros)
python scripts/log_analysis/advanced_log_analyzer.py --quiet
```
### Monitoramento em Tempo Real
```bash
# Monitor básico (verifica a cada 5 segundos)
python scripts/log_analysis/realtime_monitor.py
# Monitor com intervalo personalizado
python scripts/log_analysis/realtime_monitor.py --interval 10
# Modo verboso (mostra todos os logs)
python scripts/log_analysis/realtime_monitor.py --verbose
# Ajustar limite de alertas
python scripts/log_analysis/realtime_monitor.py --threshold 10
# Especificar banco de dados
python scripts/log_analysis/realtime_monitor.py --db-path logs/application.db
```
## 📊 Tipos de Análise
### Problemas Detectados
1. **Erros de Importação**
- `ImportError`, `ModuleNotFoundError`
- Variáveis não definidas (`not defined`)
- Problemas de estrutura de pacotes
2. **Problemas de Performance**
- Operações que demoram mais de 1 segundo
- Análise de tempo de resposta
- Identificação de gargalos
3. **Erros Críticos**
- Exceções não tratadas
- Falhas de servidor
- Problemas de memória
4. **Eventos do Sistema**
- Inicialização do Gradio
- Mudanças de configuração
- Atividade de módulos
### Relatórios Gerados
- **Distribuição por Nível**: Contagem de logs por severidade
- **Módulos Mais Ativos**: Ranking de módulos por atividade
- **Timeline**: Atividade por hora com gráfico visual
- **Problemas Críticos**: Lista detalhada de erros e warnings
- **Análise de Performance**: Operações lentas identificadas
## 🎨 Recursos Visuais
### Monitor em Tempo Real
- **Cores por Severidade**:
- 🚨 **Vermelho**: Problemas críticos (memória, servidor)
- ⚠️ **Amarelo**: Problemas médios (importação, Gradio)
- ℹ️ **Azul**: Informações e problemas menores
- **Estatísticas em Tempo Real**:
- Contador de logs verificados
- Número de alertas gerados
- Timestamp atual
### Relatórios de Análise
- **Gráficos ASCII**: Timeline visual de atividade
- **Emojis Informativos**: Categorização visual dos problemas
- **Formatação Estruturada**: Seções bem organizadas
## 🔧 Configuração Avançada
### Variáveis de Ambiente
```bash
# Definir caminho padrão do banco de logs
export LOG_DB_PATH="logs/application.db"
# Configurar intervalo padrão do monitor
export MONITOR_INTERVAL=5
```
### Personalização de Padrões
Os scripts podem ser facilmente modificados para detectar padrões específicos:
```python
# Em advanced_log_analyzer.py
self.patterns = {
'custom_error': re.compile(r'seu_padrao_aqui', re.IGNORECASE),
# ... outros padrões
}
```
## 📈 Casos de Uso Comuns
### 1. Debugging de Problemas de Importação
```bash
# Foca apenas em erros de importação
python scripts/log_analysis/advanced_log_analyzer.py --hours 1 | grep -A5 "ERROS DE IMPORTAÇÃO"
```
### 2. Monitoramento Durante Deploy
```bash
# Monitor em tempo real durante atualizações
python scripts/log_analysis/realtime_monitor.py --verbose --interval 2
```
### 3. Análise de Performance Semanal
```bash
# Relatório completo da semana
python scripts/log_analysis/advanced_log_analyzer.py --hours 168 --output relatorio_semanal.txt
```
### 4. Exportação para Análise Externa
```bash
# Dados em JSON para ferramentas externas
python scripts/log_analysis/advanced_log_analyzer.py --json logs_data.json --quiet
```
## 🛠️ Troubleshooting
### Problemas Comuns
1. **"Banco de dados não encontrado"**
- Verifique se a aplicação está rodando
- Confirme o caminho com `--db-path`
- Certifique-se de que logs estão sendo gerados
2. **"Nenhum log encontrado"**
- Reduza o período com `--hours`
- Verifique se há atividade na aplicação
- Confirme configuração de logging
3. **Monitor não mostra alertas**
- Use `--verbose` para ver todos os logs
- Ajuste `--threshold` se necessário
- Verifique padrões de detecção
### Logs de Debug
Para debug dos próprios scripts:
```bash
# Ativar debug do Python
PYTHONPATH=. python -v scripts/log_analysis/advanced_log_analyzer.py
```
## 📝 Contribuição
Para adicionar novos padrões de detecção ou melhorar os scripts:
1. Modifique os padrões regex nas classes
2. Adicione novos tipos de análise
3. Implemente novos formatos de saída
4. Teste com dados reais da aplicação
## 🔗 Integração
Estes scripts podem ser integrados com:
- **CI/CD**: Análise automática após deploys
- **Monitoramento**: Alertas via webhook
- **Dashboards**: Dados JSON para visualização
- **Cron Jobs**: Relatórios periódicos automáticos
---
**Desenvolvido para o Sistema de Análise de Mercado**
*Versão 1.0.0 - Scripts de Análise Avançada de Logs*