Data: 10 de fevereiro de 2024
Aceito
Dado que o projeto está sendo desenvolvido em duas camadas, aderente ao desafio, e não temos dados sobre a escala que ele deve alcançar, ter algum nível de Observabilidade desde o início é muito útil. As métricas fornecidas por essa abordagem nos orientam sobre como nossos projetos crescem, tornando-os mais escaláveis e sustentáveis.
Essas métricas nos ajudam a escolher as melhores abordagens e arquiteturas. Decisões como o uso de filas, caches defensivos e outras alternativas devem ser tomadas com base em métricas.
Como o Prometheus e o Grafana são amplamente utilizados no mercado e já possuo experiência e conhecimento prévio com eles, além do fato de o Grafana já fazer parte do conjunto de ferramentas do proponente do desafio, faz sentido utilizá-los neste contexto.
Farei a implementação de um middleware usando o Prometheus e o Gorm-Prometheus customizado no framework Echo, juntamente com suas devidas configurações em variáveis de ambiente. Também preparamos nosso docker-compose.yml
para atender à estrutura dessas ferramentas, permitindo um desenvolvimento na máquina local que esteja alinhado com essa diretriz.
Durante minhas pesquisas, também me deparei com o Echo-Prometheus da Globo.com, mas optei pela abordagem customizada devido à baixa popularidade (estrelas) que o projeto possui e minha familiaridade com essa abordagem no Gin Framework
.
Obteremos um conjunto básico de métricas RED (Rate, Errors e Duration)
e API Basics
, amplamente utilizadas no mercado, que são indicadores do crescimento e escalabilidade de nossas APIs. Balizadores do desenvolvimento.