Skip to content

Commit

Permalink
Resources Health Check ReadMe (#4678)
Browse files Browse the repository at this point in the history
* Resources Health Check ReadMe

* Update src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/README.md

Co-authored-by: Sébastien Ros <sebastienros@gmail.com>

---------

Co-authored-by: Sébastien Ros <sebastienros@gmail.com>
  • Loading branch information
Tratcher and sebastienros authored Nov 7, 2023
1 parent 882e12c commit 484e07a
Showing 1 changed file with 45 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -18,6 +18,50 @@ Or directly in the C# project file:
</ItemGroup>
```

## 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<string> 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<string> tags)
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action<ResourceUtilizationHealthCheckOptions> configure)
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action<ResourceUtilizationHealthCheckOptions> configure, params string[] tags)
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action<ResourceUtilizationHealthCheckOptions> configure, IEnumerable<string> 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

Expand Down

0 comments on commit 484e07a

Please sign in to comment.