Rodolfo dos Santos Pinto
Mar 22 · 3 min read

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.

Training Center

Conectamos pessoas que querem aprender algo relacionado a desenvolvimento de software com gente que pode guiá-las.

Rodolfo dos Santos Pinto

Written by

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

Training Center

Conectamos pessoas que querem aprender algo relacionado a desenvolvimento de software com gente que pode guiá-las.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade