Код IT
← Каталог

Справочник по ASP.NET — 3. Health Checks

Фрагмент из «Справочник по ASP.NET»: 3. Health Checks.

C# main.cs
public class DiskSpaceCheck : IHealthCheck
{
    public async Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default)
    {
        var drive = DriveInfo.GetDrives().First(d => d.IsReady && d.Name == "C:\\");
        var freePercent = (double)drive.AvailableFreeSpace / drive.TotalSize;

        if (freePercent < 0.1) // < 10%
            return HealthCheckResult.Unhealthy("Low disk space", null, new { FreePercent = freePercent });

        return HealthCheckResult.Healthy("Disk space OK");
    }
}

// Регистрация:
services.AddHealthChecks().AddCheck<DiskSpaceCheck>("disk");
public class DiskSpaceCheck : IHealthCheck
{
    public async Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default)
    {
        var drive = DriveInfo.GetDrives().First(d => d.IsReady && d.Name == "C:\\");
        var freePercent = (double)drive.AvailableFreeSpace / drive.TotalSize;

        if (freePercent < 0.1) // < 10%
            return HealthCheckResult.Unhealthy("Low disk space", null, new { FreePercent = freePercent });

        return HealthCheckResult.Healthy("Disk space OK");
    }
}

// Регистрация:
services.AddHealthChecks().AddCheck<DiskSpaceCheck>("disk");