Health Checks com APIs ASP.NET Core

No mundo de desenvolvimento de software, é essencial garantir que uma aplicação funcione de maneira eficiente e confiável. Em um ambiente altamente competitivo, o tempo de inatividade pode levar à perda de negócios e, possivelmente, à insatisfação do cliente.

Para enfrentar esses desafios, uma ótima alternativa é a implementação de Health Checks em suas aplicações ASP.NET Core. Neste artigo, discutirei os conceitos básicos dessas verificações e como implementá-las em aplicações ASP.NET Core.

O que são Health Checks?

Health Checks são mecanismos utilizados para monitorar a saúde e o desempenho de uma aplicação. Eles são projetados para identificar rapidamente problemas que possam afetar a estabilidade e o desempenho da aplicação e tomar medidas corretivas em tempo hábil. Isso permite que os desenvolvedores e os operadores de TI gerenciem a aplicação de maneira mais eficaz e garantam uma experiência do usuário mais estável.

Health Checks no ASP.NET Core

O ASP.NET Core é um framework de desenvolvimento web de código aberto e multiplataforma desenvolvido pela Microsoft. Ele foi projetado para ser escalável e de alto desempenho, com recursos integrados para simplificar a criação e a manutenção de aplicações web modernas. A partir da versão 2.2, o ASP.NET Core introduziu o suporte nativo para Health Checks, fornecendo uma maneira simples de adicionar essas verificações a uma aplicação.

Para configurá-los em uma API ASP.NET Core, basta atualizar a class Program com o código das linhas 3 e 12. O restante do código não será mostrado para simplificar a explicação:

Class Program com Health Checks

Com isso, adicionamos Health Checks à nossa API, resultando na criação automática de um endpoint “/health” que irá servir para essas verificações. Ele vai retornar um simples texto com “Healthy” ou “Unhealthy”, dependendo do estado do recurso.

Health Check para o SQL Server

Também é possível adicionar Health Checks do SQL Server e ter uma interface gráfica para isso!

Primeiramente, instale as bibliotecas abaixo:

  • AspNetCore.HealthChecks.SqlServer
  • AspNetCore.HealthChecks.UI
  • AspNetCore.HealthChecks.UI.Client
  • AspNetCore.HealthChecks.UI.InMemory.Storage

E agora, na classe Program, atualizará o código para ficar ao seguinte abaixo (não incluo o restante das linhas do Program para simplificar):

Adicionando SQL Server e UI

Aqui adicionamos as linhas de 4 a 7, configurando o health check do SQL Server e também a interface gráfica, e também da linha 16 à 21. A linha 16 em específico está adicionando mais informações ao nosso endpoint de verificação.

Outro ponto de atenção é a linha 5. A string de conexão que estiver no appsettings.json será utilizada para realizar a verificação da integridade do banco de dados. Logo, preste atenção no nome e valor da string de conexão, para não estar errada e começar a apontar erro mesmo o banco estando funcional.

Executando a aplicação e acessando o endpoint “/healthchecks-ui”, teremos uma interface gráfica mostrando o nosso health check e o estado dele!

Interface gráfica

Muito legal, né?


Quer alavancar sua carreira como Desenvolvedor(a) .NET?

Além de Desenvolvedor .NET Sênior, eu sou instrutor de mais de 700 alunos e também tenho dezenas de mentorados.

Conheça o com mais de 800 video-aulas sobre C# e desenvolvimento de APIs com ASP NET Core, Microsserviços com ASP NET Core, Arquitetura de Software, Computação em Nuvem, SQL, HTML, CSS e JavaScript, JavaScript Intermediário, TypeScript, Desenvolvimento Front-End com Angular, e Desenvolvimento Front-end com React. Diversos mini-cursos disponíveis aos alunos e atualizações gratuitas.

Suporte dedicado, e comunidade de centenas de alunos.

Completo e online, destinado a profissionais que querem dar seu próximo passo em sua carreira como desenvolvedores .NET.

Clique aqui para ter mais informações e garantir sua vaga


Conclusão

Os health checks são uma parte crucial do desenvolvimento e da manutenção de aplicações ASP.NET Core. Ao monitorar o estado geral e o desempenho de nossas aplicações, podemos garantir que nossos serviços estejam sempre em perfeitas condições para atender às demandas dos clientes e fornecer a melhor experiência possível.

Ao utilizar as ferramentas e os recursos nativos do ASP.NET Core, você estará dando um passo fundamental para tornar seu aplicativo mais resiliente, escalável e fácil de gerenciar. Então, não hesite! Vá em frente e comece a implementar health checks em suas aplicações agora mesmo. Afinal, a saúde da sua aplicação é uma prioridade que merece toda a sua atenção.

Lembre-se de que o mundo do desenvolvimento de software está em constante evolução, e nunca é tarde para aprender novas técnicas e práticas recomendadas. Te vejo no próximo artigo!