Este é um projeto de software que tem como objetivo monitorar a integridade de recursos de sistema e serviços em aplicações ASP.NET Core utilizando a API HealthChecks
integrada e a poderosa biblioteca AspNetCore.HealthChecks.System
. Ele foi desenvolvido utilizando .NET 8, Docker e segue uma arquitetura modular e extensível, garantindo observabilidade, manutenibilidade e escalabilidade.
- Visão Geral
- Tecnologias Utilizadas
- Instalação
- Como Usar
- Estrutura de Diretórios
- Configuração
- Contribuições
- Licença
- Contato
O CheckHealthNet fornece endpoints HTTP para monitoramento em tempo real da saúde de serviços e recursos do sistema, como:
- CPU
- Memória
- Espaço em disco
- Tempo de atividade (uptime)
Principais funcionalidades:
- Health check configurável com limites de uso por recurso
- Pronto para Prometheus/Kubernetes
- Arquitetura limpa e extensível
- .NET 8 – Plataforma principal de desenvolvimento
- AspNetCore.HealthChecks.System – Biblioteca para monitoramento de sistema
- Docker – Containerização e execução local/padrão para nuvem
- Swagger – Documentação interativa da API (opcional)
- Visual Studio Code / Rider / Visual Studio – Ambientes recomendados
- .NET SDK 8+
- Docker (opcional)
- Git
Antes de rodar o projeto ou usar as funcionalidades de verificação de integridade do sistema, instale o pacote necessário:
dotnet add package AspNetCore.HealthChecks.System
dotnet add package AspNetCore.HealthChecks.UI
dotnet add package AspNetCore.HealthChecks.UI.Client
dotnet add package AspNetCore.HealthChecks.UI.InMemory.Storage
-
Clone o repositório:
git clone https://github.com/seu-usuario/CheckHealthNet.git cd CheckHealthNet
-
Restaure os pacotes NuGet:
dotnet restore
-
Execute localmente:
dotnet run
-
Ou usando Docker:
docker build -t checkhealthnet . docker run -p 5000:80 checkhealthnet
- GET
/health
Retorna o status geral da aplicação e dos recursos monitorados.
curl http://localhost:5000/health
{
"status": "Healthy",
"entries": {
"cpu": { "status": "Healthy", "description": "CPU usage is under 90%" },
"memory": { "status": "Healthy", "description": "Memory usage is under 85%" },
"disk": { "status": "Healthy", "description": "Disk usage is under 90%" },
"uptime": { "status": "Healthy", "description": "System uptime is above 10 minutes" }
}
}
CheckHealthNet/
├── Program.cs # Configuração principal da aplicação
├── HealthChecks/ # Classe com registro dos checks do sistema
├── appsettings.json # Configurações gerais
├── Dockerfile # Imagem da aplicação
└── README.md # Documentação do projeto
A configuração dos limites de CPU, memória, disco e uptime pode ser feita diretamente no Program.cs
:
options.AddCpuHealthCheck("cpu", 0.90);
options.AddMemoryHealthCheck("memory", 0.85);
options.AddDiskStorageHealthCheck("disk", "C:\\", 0.90);
options.AddSystemUptimeHealthCheck("uptime", TimeSpan.FromMinutes(10));
Contribuições são bem-vindas!
- Fork este repositório
- Crie uma branch:
git checkout -b feature/nome-da-sua-feature
- Commit suas alterações:
git commit -m 'Adiciona nova funcionalidade'
- Push:
git push origin feature/nome-da-sua-feature
- Abra um Pull Request
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para mais informações.
Caso tenha dúvidas, sugestões ou deseje colaborar:
- Email: contato@dopme.io
- LinkedIn: Danilo O. Pinheiro
- Dev.to: @daniloopinheiro
- Medium: @daniloopinheiro