Skip to content

Commit 484e07a

Browse files
Resources Health Check ReadMe (#4678)
* Resources Health Check ReadMe * Update src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization/README.md Co-authored-by: Sébastien Ros <[email protected]> --------- Co-authored-by: Sébastien Ros <[email protected]>
1 parent 882e12c commit 484e07a

File tree

1 file changed

+45
-1
lines changed
  • src/Libraries/Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization

1 file changed

+45
-1
lines changed

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

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Microsoft.Extensions.Diagnostics.HealthChecks.ResourceUtilization
22

3-
Resource utilization health check.
3+
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.
44

55
## Install the package
66

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

21+
## Usage Example
22+
23+
The health check services can be registered and configured using any of the following API:
24+
25+
```csharp
26+
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, params string[] tags)
27+
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, IEnumerable<string> tags)
28+
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, IConfigurationSection section)
29+
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, IConfigurationSection section, params string[] tags)
30+
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, IConfigurationSection section, IEnumerable<string> tags)
31+
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action<ResourceUtilizationHealthCheckOptions> configure)
32+
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action<ResourceUtilizationHealthCheckOptions> configure, params string[] tags)
33+
public static IHealthChecksBuilder AddResourceUtilizationHealthCheck(this IHealthChecksBuilder builder, Action<ResourceUtilizationHealthCheckOptions> configure, IEnumerable<string> tags)
34+
```
35+
36+
For example:
37+
38+
```csharp
39+
var builder = WebApplication.CreateBuilder(args);
40+
41+
builder.Services.AddHealthChecks()
42+
.AddResourceUtilizationHealthCheck(o =>
43+
{
44+
o.CpuThresholds = new ResourceUsageThresholds
45+
{
46+
DegradedUtilizationPercentage = 80,
47+
UnhealthyUtilizationPercentage = 90,
48+
};
49+
o.MemoryThresholds = new ResourceUsageThresholds
50+
{
51+
DegradedUtilizationPercentage = 80,
52+
UnhealthyUtilizationPercentage = 90,
53+
};
54+
o.SamplingWindow = TimeSpan.FromSeconds(5);
55+
});
56+
57+
var app = builder.Build();
58+
59+
app.MapHealthChecks("/healthz");
60+
61+
app.Run();
62+
```
63+
64+
`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.
2165

2266
## Feedback & Contributing
2367

0 commit comments

Comments
 (0)