WorkflowForge.Extensions.Observability.HealthChecks
2.1.1
dotnet add package WorkflowForge.Extensions.Observability.HealthChecks --version 2.1.1
NuGet\Install-Package WorkflowForge.Extensions.Observability.HealthChecks -Version 2.1.1
<PackageReference Include="WorkflowForge.Extensions.Observability.HealthChecks" Version="2.1.1" />
<PackageVersion Include="WorkflowForge.Extensions.Observability.HealthChecks" Version="2.1.1" />
<PackageReference Include="WorkflowForge.Extensions.Observability.HealthChecks" />
paket add WorkflowForge.Extensions.Observability.HealthChecks --version 2.1.1
#r "nuget: WorkflowForge.Extensions.Observability.HealthChecks, 2.1.1"
#:package WorkflowForge.Extensions.Observability.HealthChecks@2.1.1
#addin nuget:?package=WorkflowForge.Extensions.Observability.HealthChecks&version=2.1.1
#tool nuget:?package=WorkflowForge.Extensions.Observability.HealthChecks&version=2.1.1
WorkflowForge.Extensions.Observability.HealthChecks
Health check integration extension for WorkflowForge compatible with Microsoft.Extensions.Diagnostics.HealthChecks.
Zero Dependencies - Zero Conflicts
This extension has ZERO external dependencies. This means:
- NO DLL Hell - No third-party dependencies to conflict with
- NO Version Conflicts - Works with any versions of your application dependencies
- Clean Deployment - Pure WorkflowForge extension
Interface-only: Implements IHealthCheck interface without requiring the full Microsoft package.
Installation
dotnet add package WorkflowForge.Extensions.Observability.HealthChecks
Requires: .NET Standard 2.0 or later
Quick Start
using WorkflowForge;
using WorkflowForge.Extensions.Observability.HealthChecks;
using var foundry = WorkflowForge.CreateFoundry("MonitoredWorkflow");
// Create the health check service from the foundry
var healthService = foundry.CreateHealthCheckService(
checkInterval: TimeSpan.FromSeconds(30));
// Run all registered health checks
var results = await healthService.CheckHealthAsync();
Console.WriteLine($"Overall status: {healthService.OverallStatus}");
foreach (var (name, result) in results)
{
Console.WriteLine($" {name}: {result.Status} - {result.Description}");
}
Key Features
- Built-in Checks: Memory, Garbage Collector, and ThreadPool health checks out of the box
- Custom Health Checks: Implement
IHealthCheckto add your own checks - Foundry Integration: Create service directly from a foundry instance
- Configurable Interval: Set check frequency for periodic monitoring
- Zero Dependencies: WorkflowForge's own
IHealthCheckabstraction (not Microsoft's)
Built-in Health Checks
The HealthCheckService automatically registers three built-in checks when registerBuiltInHealthChecks is true (the default):
| Check | Description |
|---|---|
MemoryHealthCheck |
Monitors process memory usage |
GarbageCollectorHealthCheck |
Monitors GC pressure and collection counts |
ThreadPoolHealthCheck |
Monitors thread pool availability |
Custom Health Check
using WorkflowForge.Extensions.Observability.HealthChecks.Abstractions;
public class DatabaseHealthCheck : IHealthCheck
{
public string Name => "Database";
public string Description => "Checks database connectivity";
public async Task<HealthCheckResult> CheckHealthAsync(
CancellationToken cancellationToken = default)
{
try
{
// Check your database connection
await CheckDatabaseAsync(cancellationToken);
return HealthCheckResult.Healthy("Database is reachable");
}
catch (Exception ex)
{
return HealthCheckResult.Unhealthy("Database unreachable", ex);
}
}
}
// Register custom checks
healthService.RegisterHealthCheck(new DatabaseHealthCheck());
Health Status
| Status | Meaning |
|---|---|
Healthy |
All checks pass |
Degraded |
Some checks report degraded performance |
Unhealthy |
One or more checks report failure |
var result = await healthService.CheckHealthAsync("Memory");
if (result?.Status == HealthStatus.Unhealthy)
{
logger.LogWarning("Memory health check failed: {Description}", result.Description);
}
See Configuration Guide for complete options.
Monitoring Dashboard
Health checks can be monitored via:
- ASP.NET Core
/healthendpoint - Application Insights
- Prometheus metrics
- Custom monitoring solutions
Documentation
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- WorkflowForge (>= 2.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
v2.1.0: Updated for WorkflowForge v2.1.0 compatibility. Removed SupportsRestore references. Added ConfigureAwait(false) to all await calls. Improved error handling and resource disposal.