Troubleshooting - Arah

Este documento contém soluções para problemas comuns do sistema Arah.

🔍 Problemas Comuns

Sintomas:

  • Aplicação não responde
  • Erro ao iniciar

Diagnóstico:

# Verificar logs
docker logs Arah-api --tail 100

# Verificar variáveis de ambiente
env | grep -E "JWT__SIGNINGKEY|ConnectionStrings"

Soluções:

  1. Verificar se JWT__SIGNINGKEY está configurado (obrigatório)
  2. Verificar se ConnectionStrings__Postgres está configurado (se usando Postgres)
  3. Verificar se porta não está em uso
  4. Verificar logs para erros específicos

Sintomas:

  • Requisições retornando 500
  • Logs mostrando exceptions

Diagnóstico:

# Verificar logs recentes
docker logs Arah-api --tail 50 | grep -i error

# Verificar health checks
curl https://api.Arah.com/health

Soluções:

  1. Verificar logs para exception específica
  2. Verificar conexão com banco de dados
  3. Verificar configuração de Redis (se configurado)
  4. Verificar se migrations foram aplicadas

Sintomas:

  • Requisições lentas
  • Timeouts

Diagnóstico:

# Verificar métricas
curl http://localhost:9090/metrics | grep http_requests_duration

# Verificar queries lentas (logs)
docker logs Arah-api | grep -i "slow"

Soluções:

  1. Verificar cache hit rate (deve ser > 70%)
  2. Verificar queries N+1
  3. Verificar índices no banco de dados
  4. Verificar uso de memória/CPU
  5. Considerar read replicas para queries de leitura

Sintomas:

  • Cache hit rate baixo
  • Queries repetidas ao banco

Diagnóstico:

# Verificar métricas de cache
curl http://localhost:9090/metrics | grep cache

# Verificar logs do Redis (se configurado)
docker logs redis | grep -i error

Soluções:

  1. Verificar se Redis está rodando (se configurado)
  2. Verificar connection string do Redis
  3. Verificar se fallback para IMemoryCache está funcionando
  4. Verificar TTLs de cache

Sintomas:

  • DbUpdateConcurrencyException nos logs
  • Operações falhando com "concurrency conflict"

Diagnóstico:

# Verificar métricas
curl http://localhost:9090/metrics | grep concurrency

Soluções:

  1. Verificar se RowVersion está sendo atualizado corretamente
  2. Implementar retry logic usando ConcurrencyHelper
  3. Verificar se entidades estão sendo rastreadas corretamente no EF Core

Sintomas:

  • Eventos na dead letter queue
  • Handlers não executando

Diagnóstico:

# Verificar logs do BackgroundEventProcessor
docker logs Arah-api | grep -i "BackgroundEventProcessor"

# Verificar métricas
curl http://localhost:9090/metrics | grep events

Soluções:

  1. Verificar se BackgroundEventProcessor está registrado
  2. Verificar se handlers estão registrados no DI
  3. Verificar dead letter queue
  4. Verificar logs para erros específicos nos handlers

Sintomas:

  • Erro 401 Unauthorized
  • Tokens inválidos

Diagnóstico:

# Verificar JWT secret
env | grep JWT__SIGNINGKEY

# Verificar logs
docker logs Arah-api | grep -i "jwt\|auth"

Soluções:

  1. Verificar se JWT__SIGNINGKEY está configurado e tem pelo menos 32 caracteres
  2. Verificar se token não expirou
  3. Verificar formato do token (Bearer token)
  4. Verificar se usuário existe no sistema

Sintomas:

  • Requisições lentas
  • Timeouts
  • Alta utilização de recursos

Diagnóstico:

# Verificar métricas
curl http://localhost:9090/metrics

# Verificar uso de recursos
docker stats Arah-api

Soluções:

  1. Verificar queries N+1
  2. Verificar índices no banco
  3. Verificar cache hit rate
  4. Considerar read replicas
  5. Verificar connection pooling
  6. Verificar rate limiting (pode estar limitando muito)

🔧 Comandos Úteis

Verificar Health

curl https://api.Arah.com/health/ready

Verificar Métricas

curl http://localhost:9090/metrics

Verificar Logs

# Docker
docker logs Arah-api --tail 100 -f

# Kubernetes
kubectl logs -f deployment/Arah-api

Verificar Cache

# Redis
redis-cli
> KEYS *
> GET <key>

Verificar Banco de Dados

# PostgreSQL
psql -h localhost -U Arah -d Arah
> \dt
> SELECT COUNT(*) FROM community_posts;


A aplicação possui uma interface web integrada para troubleshooting em /admin/monitoring/troubleshooting.

Funcionalidades:

  • ✅ Diagnóstico automático de problemas comuns
  • ✅ Sugestões de solução
  • ✅ Comandos úteis (links para health, métricas, logs)
  • ✅ Guia de resolução interativo

Acesso: https://api.Arah.com/admin/monitoring/troubleshooting (requer autenticação e autorização)

Ver documentação completa: LOGS_MONITORAMENTO_ARQUITETURA.md