Daiana Michels
Daiana Michels12/10/2023 13:52
Compartilhe

Monitorando a saúde de aplicações

  • #Grafana
  • #Spring
  • #Java

Spring Actuator e Prometheus - Monitorando a saúde de aplicações

Quando falamos em aplicativos empresariais, o monitoramento da saúde de aplicações assume um papel crucial. Essa prática é essencial para previnir falhas, antecipar tendências, disparar alertas quando limites são atingidos e proporcionar insights valiosos na resolução de problemas em ambiente de produção.

Embora não se possa eliminar completamente a ocorrência de pequenos contratempos, a implementação de medidas de monitoramento adequadas ajuda a mitigar a ocorrência de eventos catastróficos.

Neste artigo será explorado a importância de se monitorar a saúde das aplicações, fazendo uso do Spring Boot Actuator e Prometheus.

Spring Actuator

A função primordial do actuator reside na sua capacidade de fornecer informações operacionais cruciais sobre o aplicativo em execução, abrangendo aspectos como integridade, métricas, informações de despejo (dump), detalhes do ambiente, entre outros.

Você tem a opção de administrar e monitorar seu aplicativo tanto por meio de terminais HTTP quanto por JMX (Java Management Extensions).

Uma vez que esta dependência está integrada na estrutura da aplicação, abre-se um leque de endpoints prontamente acessíveis. O Spring Boot Actuator pode ser facilmente configurado e personalizado, proporcionando flexibilidade na sua utilização e expansão de funcionalidades.

Para ativar o uso do Spring Boot Actuator basta incluir a dependência ' spring-boot-starter-actuator ' ao gerenciador de pacotes.

Dependência Maven:

<dependencies>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>

Dependência Gradle:

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator '
}

Endpoints

Os endpoints do Spring Boot Actuator desempenham um papel fundamental na capacidade de monitorar e interagir com seu aplicativo. O Spring Boot inclui vários endpoints integrados e oferece a flexibilidade de adicionar outros personalizados por você.

Um endpoint notável é o endpoint ' /health ' que fornece informações essenciais sobre o status de integridade da aplicação.

Cada endpoint individual pode ser habilitado ou desabilitado e exposto para acesso, seja por meio de solicitações HTTP ou por JMX. A maioria dos aplicativos opta por disponibilizar esses endpoints via HTTP, onde um identificador de endpoint é mapeado para uma URL com o prefixo ' /actuator '. Pegando como exemplo o endpoint ' health ', seu acesso será através da URL ' /actuator/health '.

Prometheus

Prometheus é uma ferramenta de alerta e monitoramento de sistemas de código aberto que começou como um projeto no SoundCloud em 2012. Ele coleta métricas de sistemas como dados de séries temporais, armazenando informações com carimbos de data e hora, juntamente com rótulos.

As principais características do Prometheus incluem um modelo de dados multidimensional, uma linguagem de consulta chamada PromQL, independência de armazenamento distribuído, coleta por meio de um modelo pull via HTTP e suporte a gráficos e painéis.

Para ativar o uso do Prometheus basta incluir a dependência ' micrometer-registry-prometheus ' ao gerenciador de pacotes.

Dependência Maven:

<dependencies>
<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
</dependencies>

Para acessar os dados expostos pelo Prometheus basta acessar o endpoint ' /actuator/prometheus '.

Com a adição de ambas as dependências, Actuator e Prometheus, é possível realizar a configuração do painel do Prometheus para exibir por exemplo, se sua aplicação está UP (disponível) ou DOWN (indisponível).

Neste link você encontra um exemplo detalhado de como realizar esta configuração.

Em um cenário cada vez mais orientado para a excelência operacional e a qualidade do serviço, o monitoramento de aplicações se torna uma pedra angular na garantia de que os sistemas estão funcionando de maneira eficaz e confiável. Neste artigo, foi abordado de forma genérica e introdutória a utilidade do Spring Actuator e do Prometheus, caso queira se aprofundar, a documentação de ambas as dependências trazem uma gama de informações sobre as possibilidades de uso e métricas/informações fornecidas.

Cabe ressaltar que, embora o Spring Actuator e o Prometheus sejam excelentes escolhas para monitoramento, existem outras ferramentas igualmente valiosas, como Grafana, Nagios, UptimeRobot e muitas mais, cada uma com suas próprias vantagens e casos de uso específicos.

Em última análise, a lição que se destaca é que o monitoramento é essencial. Ele não apenas fornece informações valiosas para manter o desempenho e a disponibilidade, mas também capacita as equipes a serem proativas na identificação e solução de problemas, minimizando impactos negativos.

Para saber mais:

https://spring.io/guides/gs/actuator-service/

https://www.baeldung.com/spring-boot-actuators

https://prometheus.io/docs/introduction/overview/

https://www.springcloud.io/post/2022-02/monitoring-springboot-applications/#gsc.tab=0

Compartilhe
Comentários (0)