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

Rodolfo dos Santos Pinto
Training Center
Published in
3 min readMar 22, 2019

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.

--

--

Rodolfo dos Santos Pinto
Training Center

.NET Foundation | .Net Developer | Writer | Technology for Love | #Core #DevOps #Azure #NetCore