Métricas SGP
A solução para coleta e armazenamento de métricas no SGP foi a criação de um Worker para realizar esse trabalho periodicamente.
Como funciona ?
O processo de coleta de métricas é disparado via Hangfire por meio de agendamentos do Worker Agendador. O Agendador envia uma mensagem para a fila de métricas via RabbitMQ (rotas de prefixo "sgp.metricas.") e o Worker Métricas intercepta essa mensagem e executa o respectivo caso de uso. Para isso é necessário relacionar os casos de uso com as rotas registrando o comando no método "RegistrarUseCases" da classe WorkerRabbitMetrica. ex:
Comandos.Add(RotasRabbitAuditoria.PersistirAuditoriaDB, new ComandoRabbit("Persistir Auditoria no Banco de Dados", typeof(IRegistrarAuditoriaUseCase)));
Para o worker criar e listar as mensagens nas filas de métricas, a rota deve estar contida na classe RotasRabbitMetrica, que é passada como parametro para o "tipoRotas" no contrutor da classe. Assim o worker se encarrega de criar a fila e ouvir suas mensagens.