torxyton's picture
feat: Implementa estrutura completa de testes com pytest
b9c68d4

A newer version of the Gradio SDK is available: 6.6.0

Upgrade

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

# 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

# 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

# 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:

# 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

# 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

# Monitor em tempo real durante atualizações
python scripts/log_analysis/realtime_monitor.py --verbose --interval 2

3. Análise de Performance Semanal

# 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

# 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:

# 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