Voyager.HealthEndpoint.HealthChecks
2.0.0
dotnet add package Voyager.HealthEndpoint.HealthChecks --version 2.0.0
NuGet\Install-Package Voyager.HealthEndpoint.HealthChecks -Version 2.0.0
<PackageReference Include="Voyager.HealthEndpoint.HealthChecks" Version="2.0.0" />
<PackageVersion Include="Voyager.HealthEndpoint.HealthChecks" Version="2.0.0" />
<PackageReference Include="Voyager.HealthEndpoint.HealthChecks" />
paket add Voyager.HealthEndpoint.HealthChecks --version 2.0.0
#r "nuget: Voyager.HealthEndpoint.HealthChecks, 2.0.0"
#:package Voyager.HealthEndpoint.HealthChecks@2.0.0
#addin nuget:?package=Voyager.HealthEndpoint.HealthChecks&version=2.0.0
#tool nuget:?package=Voyager.HealthEndpoint.HealthChecks&version=2.0.0
Voyager.HealthEndpoint.HealthChecks
Adapter that bridges Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService
to the IAppStatus contract from
Voyager.HealthEndpoint.
A single MapVoyHealth() endpoint can aggregate any number of IHealthCheck instances
registered via services.AddHealthChecks() — including the full ecosystem of
xabaril AspNetCore.HealthChecks.*
checks for databases, queues, and external services.
Install
dotnet add package Voyager.HealthEndpoint.HealthChecks
This package depends on Voyager.HealthEndpoint; you do not install both separately.
Quick start
using Microsoft.Extensions.Diagnostics.HealthChecks;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddHealthServices()
.UseHealthCheckService(options =>
{
options.StoreName = "identity-service";
// Scope the readiness probe to checks tagged "ready". Liveness ignores them.
options.Predicate = registration => registration.Tags.Contains("ready");
});
builder.Services.AddHealthChecks()
.AddNpgSql(connectionString, tags: new[] { "ready" })
.AddCheck<OpenIddictKeysCheck>("openiddict_keys", tags: new[] { "ready" })
.AddCheck("self", () => HealthCheckResult.Healthy(), tags: new[] { "live" });
var app = builder.Build();
app.MapVoyHealth(); // /health, /health/readiness, /sqlname unchanged
app.Run();
Mapping rules
HealthCheckService aggregate |
Endpoint response |
|---|---|
Healthy |
HTTP 200 "Ok" |
Degraded |
HTTP 200 "Ok" — Kubernetes liveness will not restart on a soft failure. |
Unhealthy |
HTTP 503 with body listing every failing check as name: description. |
The Predicate you set on HealthCheckServiceAppStatusOptions flows directly to
HealthCheckService.CheckHealthAsync(predicate). Tag your checks "ready" or "live"
at registration to pre-segment them, then point the readiness endpoint at one slice and
let the liveness endpoint stay independent.
How it differs from the core package
Voyager.HealthEndpoint alone gives you the three endpoints (/health,
/health/readiness, /sqlname) and a single IAppStatus.ReadAsync() you implement
once per service. The HealthChecks adapter swaps that custom IAppStatus for one that
delegates to HealthCheckService, so you compose readiness from N small IHealthChecks
instead of writing one big ReadAsync. Pick this package when:
- You already use (or want to use) the xabaril
AspNetCore.HealthChecks.*ecosystem. - You want tag-based separation between liveness and readiness without writing two
IAppStatusimplementations. - You want JSON
HealthReportsemantics under the hood (Degraded, descriptions, per-check timings) while keeping the simple plain-text endpoint contract for K8s.
Links
- Source, issue tracker, full README, and migration notes: github.com/Voyager-Poland/Voyager.HealthEndpoint
- Runnable sample:
samples/HealthChecksAdapter - Kubernetes deployment with probes wired:
samples/KubernetesExample - Changelog:
CHANGELOG.md - License: MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
-
net10.0
- Voyager.HealthEndpoint (>= 2.0.0)
-
net8.0
- Voyager.HealthEndpoint (>= 2.0.0)
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 |
|---|---|---|
| 2.0.0 | 97 | 5/13/2026 |
| 2.0.0-preview.1.1 | 46 | 5/13/2026 |
| 2.0.0-preview.1 | 88 | 4/25/2026 |
| 1.4.0-preview.6 | 51 | 4/25/2026 |
| 1.4.0-preview.5 | 49 | 4/25/2026 |
| 1.4.0-preview.4 | 51 | 4/25/2026 |