Fase 4: Observabilidade e Monitoramento

Duração: 2 semanas (14 dias úteis)
Prioridade: 🟡 ALTA
Bloqueia: Operação eficiente em produção
Estimativa Total: 80 horas
Status: ✅ 100% Completo


🎯 Objetivo

Observabilidade completa com métricas, logs e tracing.


📋 Tarefas Detalhadas

Semana 7: Logging e Métricas

7.1 Logs Centralizados

Estimativa: 24 horas (3 dias)
Status: ✅ 100% Completo

Tarefas:

  • Escolher plataforma (Seq, Application Insights, ou ELK)
  • Configurar Serilog sink para plataforma escolhida
  • Adicionar enrichers (MachineName, ThreadId, etc.)
  • Configurar níveis de log por ambiente
  • Adicionar structured logging em pontos críticos
  • Melhorar Correlation ID middleware
  • Testar logs centralizados
  • Documentar configuração

Arquivos a Modificar:

  • backend/Arah.Api/Program.cs (Serilog configuration)
  • backend/Arah.Api/Middleware/CorrelationIdMiddleware.cs

Critérios de Sucesso:

  • ✅ Logs centralizados funcionando
  • ✅ Enrichers configurados
  • ✅ Níveis de log por ambiente
  • ✅ Structured logging implementado
  • ✅ Correlation ID em todos os logs
  • ✅ Documentação completa

7.2 Métricas Básicas

Estimativa: 32 horas (4 dias)
Status: ✅ 100% Completo

Tarefas:

  • Escolher plataforma (Prometheus/Grafana ou Application Insights)
  • Adicionar pacote de métricas (prometheus-net.AspNetCore)
  • Configurar métricas HTTP (request rate, error rate, latência)
  • Adicionar métricas de negócio (posts criados, eventos, etc.)
  • Adicionar métricas de sistema (CPU, memória, conexões)
  • Criar dashboards básicos
  • Configurar alertas básicos
  • Documentar métricas

Arquivos a Criar:

  • backend/Arah.Application/Metrics/ArapongaMetrics.cs
  • backend/Arah.Api/Metrics/ (novo diretório)
  • docs/METRICS.md

Arquivos a Modificar:

  • backend/Arah.Api/Program.cs
  • Services principais (instrumentar)

Critérios de Sucesso:

  • ✅ Endpoint /metrics exposto
  • ✅ Métricas HTTP automáticas
  • ✅ Métricas de negócio coletadas
  • ✅ Dashboards criados
  • ✅ Alertas configurados
  • ✅ Documentação completa

Semana 8: Tracing e Monitoramento Avançado

8.1 Distributed Tracing

Estimativa: 24 horas (3 dias)
Status: ✅ 100% Completo

Tarefas:

  • Adicionar OpenTelemetry
  • Configurar tracing para HTTP requests
  • Configurar tracing para database queries
  • Configurar tracing para eventos
  • Integrar com Jaeger ou Application Insights
  • Testar distributed tracing
  • Documentar configuração

Arquivos a Criar:

  • backend/Arah.Api/Tracing/ (novo diretório)

Arquivos a Modificar:

  • backend/Arah.Api/Program.cs

Critérios de Sucesso:

  • ✅ OpenTelemetry configurado
  • ✅ Tracing de HTTP requests funcionando
  • ✅ Tracing de database queries funcionando
  • ✅ Tracing de eventos funcionando
  • ✅ Visualização em Jaeger/Application Insights
  • ✅ Documentação completa

8.2 Monitoramento Avançado

Estimativa: 16 horas (2 dias)
Status: ✅ 100% Completo

Tarefas:

  • Criar dashboard de performance
  • Criar dashboard de negócio
  • Criar dashboard de sistema
  • Configurar alertas críticos
  • Configurar alertas de negócio
  • Configurar alertas de sistema
  • Documentar dashboards e alertas

Arquivos a Criar:

  • docs/MONITORING.md
  • Dashboards (Grafana ou Application Insights)

Critérios de Sucesso:

  • ✅ Dashboards criados
  • ✅ Alertas configurados
  • ✅ Documentação completa

8.3 Runbook e Troubleshooting

Estimativa: 16 horas (2 dias)
Status: ✅ 100% Completo

Tarefas:

  • Criar runbook de operações
  • Documentar troubleshooting comum
  • Documentar procedimentos de emergência
  • Documentar rollback procedures
  • Documentar escalação
  • Criar playbook de incidentes

Arquivos a Criar:

  • docs/RUNBOOK.md
  • docs/TROUBLESHOOTING.md
  • docs/INCIDENT_PLAYBOOK.md

Critérios de Sucesso:

  • ✅ Runbook completo
  • ✅ Troubleshooting documentado
  • ✅ Procedimentos de emergência documentados
  • ✅ Playbook de incidentes criado

📊 Resumo da Fase 4

Tarefa Estimativa Status Prioridade
Logs Centralizados 24h ✅ 100% Completo 🟡 Alta
Métricas Básicas 32h ✅ 100% Completo 🟡 Alta
Distributed Tracing 24h ✅ 100% Completo 🟡 Alta
Monitoramento Avançado 16h ✅ 100% Completo 🟡 Alta
Runbook e Troubleshooting 16h ✅ 100% Completo 🟡 Alta
Total 80h (14 dias) 100% Completo

4.X Configuração de Mapas e Geo-localização (Complementar)

Estimativa: 16 horas (2 dias)
Status: ⏳ Pendente
Prioridade: 🟢 Baixa

Contexto: Raio de busca, limites de distância e configuração de provedores de mapas atualmente fixos no código. Esta tarefa permite configuração por território para ajustes baseados em densidade territorial e integração com diferentes provedores.

Tarefas:

  • Criar modelo de domínio MapConfig:
    • Id, TerritoryId (nullable para config global)
    • SearchRadiusMeters (int, raio de busca em metros)
    • MaxDistanceMeters (int, distância máxima para "territórios próximos")
    • MapProvider (enum: Google, Mapbox, OpenStreetMap, etc.)
    • ProviderSettings (JSON, configurações específicas do provider)
    • DefaultZoom (int, nível de zoom padrão)
    • Bounds (JSON, limites de área opcionais)
    • Enabled (bool)
    • CreatedAtUtc, UpdatedAtUtc
  • Criar IMapConfigRepository e implementações (Postgres, InMemory)
  • Criar MapConfigService:
    • GetConfigAsync(Guid? territoryId, CancellationToken) → busca config territorial ou global
    • CreateOrUpdateConfigAsync(MapConfig, CancellationToken)
  • Atualizar serviços de mapa:
    • Usar MapConfig ao buscar territórios próximos
    • Aplicar raio de busca configurado
    • Usar provedor de mapas configurado
  • Criar MapConfigController:
    • GET /api/v1/territories/{territoryId}/map-config (Curator)
    • PUT /api/v1/territories/{territoryId}/map-config (Curator)
    • GET /api/v1/admin/map-config (global, SystemAdmin)
    • PUT /api/v1/admin/map-config (global, SystemAdmin)
  • Interface administrativa (DevPortal):
    • Seção para configuração de mapas
    • Explicação de raio de busca e limites
  • Testes de integração
  • Documentação

Arquivos a Criar:

  • backend/Arah.Domain/Map/MapConfig.cs
  • backend/Arah.Application/Interfaces/Map/IMapConfigRepository.cs
  • backend/Arah.Application/Services/Map/MapConfigService.cs
  • backend/Arah.Api/Controllers/MapConfigController.cs
  • backend/Arah.Infrastructure/Postgres/PostgresMapConfigRepository.cs
  • backend/Arah.Infrastructure/InMemory/InMemoryMapConfigRepository.cs
  • backend/Arah.Tests/Api/MapConfigIntegrationTests.cs

Arquivos a Modificar:

  • backend/Arah.Application/Services/TerritoryService.cs (ou serviço de mapas equivalente)
  • backend/Arah.Infrastructure/InMemory/InMemoryDataStore.cs
  • backend/Arah.Api/Extensions/ServiceCollectionExtensions.cs
  • backend/Arah.Api/wwwroot/devportal/index.html

Critérios de Sucesso:

  • ✅ Configuração de mapas por território
  • ✅ Raio de busca configurável
  • ✅ Suporte a múltiplos provedores de mapas
  • ✅ Interface administrativa disponível
  • ✅ Testes passando
  • ✅ Documentação atualizada

Referência: Consulte FASE10_CONFIG_FLEXIBILIZACAO_AVALIACAO.md para contexto completo.


✅ Critérios de Sucesso da Fase 4

  • ✅ Logs centralizados funcionando
  • ✅ Enrichers configurados
  • ✅ Structured logging implementado
  • ✅ Métricas de performance coletadas
  • ✅ Métricas de negócio coletadas
  • ✅ Dashboards criados
  • ✅ Alertas configurados
  • ✅ OpenTelemetry configurado
  • ✅ Tracing de HTTP requests funcionando
  • ✅ Tracing de database queries funcionando
  • ✅ Runbook completo
  • ✅ Troubleshooting documentado

🔗 Dependências

  • Fase 1: Health Checks completos
  • Fase 3: Redis (para métricas de cache)

🖥️ Interface Web de Monitoramento (Expansão Futura)

Status: ⏳ Planejado

A Fase 4 implementou observabilidade completa (logs, métricas, tracing). Uma expansão futura adicionará uma interface web integrada para monitoramento e auxílio à produção.

Funcionalidades Planejadas:

  • ✅ Dashboard principal com status geral
  • ✅ Visualizador de logs em tempo real
  • ✅ Métricas e dashboards interativos
  • ✅ Health checks visuais
  • ✅ Troubleshooting assistido

Ver documentação completa: LOGS_MONITORAMENTO_ARQUITETURA.md

Estimativa: 4 semanas (160 horas)


Status: ✅ FASE 4 100% COMPLETA
Próxima Fase: Fase 5 - Segurança Avançada
Expansão Futura: Interface Web de Monitoramento (ver LOGS_MONITORAMENTO_ARQUITETURA.md)