diff --git a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/README.md b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/README.md index 1a447673c27..d94223dbe4e 100644 --- a/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/README.md +++ b/src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/README.md @@ -1,6 +1,6 @@ # Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization -Resource utilization health check. +This provides configurable health check reporting based on the current system resource utilization. See `Microsoft.Extensions.Diagnostics.ResourceMonitoring` for details on how resources are measured. See the [health checks](https://learn.microsoft.com/aspnet/core/host-and-deploy/health-checks) documentation for general usage guidance. ## Install the package @@ -18,6 +18,50 @@ Or directly in the C# project file: ``` +## Usage Example + +The health check services can be registered and configured using any of the following API: + +```csharp +public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, params string[] tags) +public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, IEnumerable tags) +public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, IConfigurationSection section) +public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, IConfigurationSection section, params string[] tags) +public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, IConfigurationSection section, IEnumerable tags) +public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action configure) +public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action configure, params string[] tags) +public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action configure, IEnumerable tags) +``` + +For example: + +```csharp +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddHealthChecks() + .AddResourceUtilizationHealthCheck(o => + { + o.CpuThresholds = new ResourceUsageThresholds + { + DegradedUtilizationPercentage = 80, + UnhealthyUtilizationPercentage = 90, + }; + o.MemoryThresholds = new ResourceUsageThresholds + { + DegradedUtilizationPercentage = 80, + UnhealthyUtilizationPercentage = 90, + }; + o.SamplingWindow = TimeSpan.FromSeconds(5); + }); + +var app = builder.Build(); + +app.MapHealthChecks("/healthz"); + +app.Run(); +``` + +`CpuThresholds` and `MemoryThresholds`'s percentages default to `null` and will not be reported as degraded or unhealthy unless configured. The `SamplingWindow` defaults to 5 seconds. ## Feedback & Contributing