Dev (Back & Front)ARTIGO

Integridade das Aplicações com .Net Core 2.2 — /Health

Nesse artigo, vamos demonstrar como verificar a integridade de uma aplicação .NET Core 2.2 e dos seus respectivos serviços, utilizando o Health Check.

Integridade das Aplicações com .Net Core 2.2 — /Health
Imagem: Rodolfo Dos Santos Pinto

Introdução

Nesse artigo, vamos demonstrar como verificar a integridade de uma aplicação .NET Core 2.2 e dos seus respectivos serviços utilizando o Health Check, que é uma funcionalidade interna de verificação de integridade.

Dessa forma, conseguimos monitorar em tempo real (via HTTP) os recursos físicos do servidor, como o uso de disco, memória e outros. Também é possível verificar a integridade das dependências de aplicativos externos como banco de dados, RabbitMQ e etc.

Mão na Massa

Para nosso exemplo, vamos simular uma aplicação que se comunica com 3 serviços diferentes: o MongoDB, o MySQL e o RabbitMQ.

Caso algum desses serviços não esteja no ar, nossa aplicação não irá funcionar e é papel do monitoramento de integridade nos informar essa indisponibilidade.

Ou seja, para o app estar com um estado Health (saudável,) é preciso que os seus serviços também estejam saudáveis.

Implementado o Health Check

Vamos entrar na classe Startup e modificar o método ConfigureServices e adicionar: “services. AddHealthChecks()” .

Em seguida vamos modificar o método Configure e adicionar o middleware:

Será por meio desse endpoint “/health” que o nosso sistema vai disponibilizar as verificações de integridade.

Agora que adicionamos o “/health”, vamos implementar os checks para cada serviço. Vá até o nugget e baixe os pacotes:

Após o download dos pacotes NuGet, vamos adicionar os checks no ConfigureServices:

Note que estamos adicionando um check para cada serviço e o HelthChecksUI para criarmos a interface.

Vamos adicionar no Configure o código abaixo para conseguirmos visualizar os checks através da Ui. Iremos acessá-lo pelo caminho “/health-ui” .

Por fim, vamos configurar o appsettings.json. É nele onde estão as conexões para os serviços. Além disso, iremos adicionar o “HealthChecks-UI”. Em URI, adicione a URL que está exportando o health.

Executando a aplicação

Agora é só executar a aplicação e acessar o /health e o /health-ui que seu app já está sendo monitorado.

/Health-ui

/Health

Note que conseguimos realizar o monitoramento e verificar que a aplicação não está Health, pois o serviço MySql está fora do ar.

O monitoramento de integridade é extremamente importante quando se está trabalhado com microsserviços.

Artigo cedido colaborativamente por Rodolfo dos Santos Pinto.

Texto publicado anteriormente aqui.

Membro do .Net Foundation, SFPC, graduado em Ciência da Computação, atualmente trabalhando no time de inovação e transformação Digital, admirador da cultura Agile e DevOps. Nas horas vagas se arrisca em criar alguns artigos e fazer algumas palestrar para ajudar a transmitir conhecimento. Tecnologia por amor. Gamer

Ver perfil