AspNetCore.Live.Api.HealthChecks.Server
1.0.0
See the version list below for details.
dotnet add package AspNetCore.Live.Api.HealthChecks.Server --version 1.0.0
NuGet\Install-Package AspNetCore.Live.Api.HealthChecks.Server -Version 1.0.0
<PackageReference Include="AspNetCore.Live.Api.HealthChecks.Server" Version="1.0.0" />
paket add AspNetCore.Live.Api.HealthChecks.Server --version 1.0.0
#r "nuget: AspNetCore.Live.Api.HealthChecks.Server, 1.0.0"
// Install AspNetCore.Live.Api.HealthChecks.Server as a Cake Addin #addin nuget:?package=AspNetCore.Live.Api.HealthChecks.Server&version=1.0.0 // Install AspNetCore.Live.Api.HealthChecks.Server as a Cake Tool #tool nuget:?package=AspNetCore.Live.Api.HealthChecks.Server&version=1.0.0
Real-Time Api Health Check Monitoring
The Asp Net Core Web Api has a Health Checks system built into it.
This project taps into that system & makes the generated Health Report,
available to Monitoring client applications, in real-time.
The Client package, installed in the Api, runs the Health Check periodically,
and uploads the generated Health Report to the Server SignalR Hub.
The Hub generates sends a push notification to the connected clients,
notifying them of the Health Report in real-time.
Server
You can use a Console app as a Health Checks Server.
Just create one with Web Sdk (project file):
<Project Sdk="Microsoft.NET.Sdk.Web">
Then, plug in the Server package.
var builder = WebApplication.CreateBuilder();
builder.Services.AddSignalR();
builder.Services.AddLiveHealthChecksServer(settings => settings.SecretKey = "43bf0968-17e0-4d22-816a-6eaadd766692");
var app = builder.Build();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<LiveHealthChecksHub>("/livehealthcheckshub");
});
app.Run();
Asp Net Core Api
In your Api add the Client Nuget package.
then
//Required - add all your health checks
services.AddHealthChecks();
services.AddLiveHealthChecksClient(settings =>
{
settings.HealthCheckIntervalInMinutes = 60;
settings.ReceiveMethod = "SampleApiHealth";
settings.HealthCheckServerHubUrl = "https://localhost:5001/livehealthcheckshub";
settings.SecretKey = "43bf0968-17e0-4d22-816a-6eaadd766692";
});
The ReceiveMethod is what the SignalR method that Monitoring app needs to listen to.
The SecretKey must be the same between Server & Api.
The Server sends the Health Report as a real-time push notification.
Monitoring app
In your Monitoring app, create a SignalR connection to the Server Hub.
Then, start listening to the set ReceiveMethod ie "SampleApiHealth".
var connection = new HubConnectionBuilder()
.WithUrl("https://localhost:5001/livehealthcheckshub")
.WithAutomaticReconnect()
.Build();
connection.On("SampleApiHealth", new Type[] {typeof(object), typeof(object)},
(arg1, arg2) =>
{
Console.WriteLine(arg1[0]);
return Task.CompletedTask;
}, new object());
await connection.StartAsync();
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
-
net6.0
- No dependencies.
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 |
---|---|---|
3.0.0 | 82 | 11/26/2024 |
2.2.0 | 104 | 10/8/2024 |
2.1.0 | 85 | 8/5/2024 |
2.0.0 | 142 | 3/17/2024 |
1.6.2 | 246 | 11/13/2023 |
1.6.1 | 160 | 10/2/2023 |
1.6.0 | 198 | 8/21/2023 |
1.5.0 | 206 | 7/24/2023 |
1.4.1 | 199 | 7/17/2023 |
1.4.0 | 202 | 7/10/2023 |
1.3.0 | 192 | 7/3/2023 |
1.2.0 | 198 | 6/26/2023 |
1.1.0 | 200 | 6/15/2023 |
1.0.0 | 190 | 6/13/2023 |
Initial release