Atc.Rest.HealthChecks 3.0.174

dotnet add package Atc.Rest.HealthChecks --version 3.0.174
                    
NuGet\Install-Package Atc.Rest.HealthChecks -Version 3.0.174
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Atc.Rest.HealthChecks" Version="3.0.174" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Atc.Rest.HealthChecks" Version="3.0.174" />
                    
Directory.Packages.props
<PackageReference Include="Atc.Rest.HealthChecks" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Atc.Rest.HealthChecks --version 3.0.174
                    
#r "nuget: Atc.Rest.HealthChecks, 3.0.174"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Atc.Rest.HealthChecks@3.0.174
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Atc.Rest.HealthChecks&version=3.0.174
                    
Install as a Cake Addin
#tool nuget:?package=Atc.Rest.HealthChecks&version=3.0.174
                    
Install as a Cake Tool

Atc.Rest.HealthChecks

Target Framework: net9.0, net10.0

Health check implementations and utilities for ASP.NET Core applications. Provides factories and helpers for creating JSON-formatted health check endpoints with detailed resource status information.

Why Use This Library?

Building robust health check endpoints requires consistent formatting and detailed status information. Atc.Rest.HealthChecks simplifies this by providing:

  • JSON Health Check Responses: Factory methods for JSON-formatted health checks
  • Resource Health Tracking: Track individual service/resource health status
  • Detailed Diagnostics: Include timing, status, and error details for each check
  • IReadOnlyDictionary Conversion: Helper extensions for health check data
  • Production-Ready Endpoints: Standardized health check responses

Perfect for:

  • Microservices requiring health endpoints
  • Kubernetes/container orchestration health probes
  • Load balancer health checks
  • Monitoring and observability solutions
  • API management platforms

Installation

dotnet add package Atc.Rest.HealthChecks

Target Framework

  • .NET 9.0

Key Features

  • HealthCheckOptionsFactory for creating JSON health check endpoints
  • ResourceHealthCheck class for tracking individual resource status
  • Extension methods for converting health data to IReadOnlyDictionary
  • Integration with Microsoft.Extensions.Diagnostics.HealthChecks
  • Support for custom health check implementations

Requirements

Key Dependencies

  • Microsoft.AspNetCore.App (framework reference)
  • Microsoft.Extensions.Diagnostics.HealthChecks
  • Atc (foundation library)

Code documentation

References

References extended

Examples

The Startup.cs class in an API

using Microsoft.Extensions.Diagnostics.HealthChecks;

public class Startup
{
    private readonly JsonSerializerOptions jsonSerializerOptions;

    public Startup()
    {
        jsonSerializerOptions = Atc.Serialization.JsonSerializerOptionsFactory.Create();
    }

    public void ConfigureServices(IServiceCollection services)
    {
        services
            .AddHealthChecks()
                .AddCheck<MyHealthCheck>(
                    name: "MyHealthCheck",
                    failureStatus: HealthStatus.Unhealthy,
                    timeout: TimeSpan.FromSeconds(30));
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapHealthChecks(
                "/health",
                HealthCheckOptionsFactory.CreateJson(
                    "ApplicationName.Api",
                    jsonSerializerOptions));
        });
    }
}

The MyHealthCheck class

public class MyHealthCheck : IHealthCheck
{
    public Task<HealthCheckResult> CheckHealthAsync(
        HealthCheckContext context,
        CancellationToken cancellationToken = default)
    {
        var data = new List<ResourceHealthCheck>();

        CheckSomeServices(data);

        if (data.All(x => x.Status == HealthStatus.Healthy))
        {
            return Task.FromResult(
                HealthCheckResult.Healthy(
                    "ApplicationName is healthy.",
                    data: data.ToIReadOnlyDictionary()));
        }

        return Task.FromResult(
            HealthCheckResult.Unhealthy(
                "ApplicationName is unhealthy.",
                exception: null,
                data: data.ToIReadOnlyDictionary()));
    }

    private void CheckSomeServices(
        ICollection<ResourceHealthCheck> data)
    {
        var sw = Stopwatch.StartNew();

        // Perform first HealthCheck and add a healthCheck to the data dictionary
        data.Add(
            new ResourceHealthCheck(
                "Service1",
                HealthStatus.Healthy,
                "Service1 is running.",
                sw.Elapsed));

        // Perform second HealthCheck and add a healthCheck to the data dictionary
        sw.Reset();
        data.Add(
            new ResourceHealthCheck(
                "Service2",
                HealthStatus.Unhealthy,
                "Service2 is not running.",
                sw.Elapsed));

        sw.Stop();
    }
}

Contributing

Contributions are welcome! Please see the main repository README for contribution guidelines.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.174 207 6/24/2026
3.0.173 121 6/24/2026
3.0.172 98 6/24/2026
3.0.67 1,508 4/25/2026
3.0.46 612 4/15/2026
3.0.45 280 4/10/2026
3.0.44 187 4/9/2026
3.0.43 114 4/9/2026
3.0.41 194 4/9/2026
3.0.40 149 4/9/2026
3.0.18 1,140 2/9/2026
3.0.16 511 12/15/2025
3.0.12 220 11/28/2025
3.0.9 406 11/21/2025
3.0.8 551 11/14/2025
3.0.4 447 11/6/2025
2.0.562 1,213 9/4/2025
2.0.561 257 9/4/2025
2.0.560 276 9/3/2025
2.0.558 370 8/22/2025
Loading failed