ASP.Net Statuspage mit IHealthCheck

ASP.Net Statuspage mit IHealthCheck

22 Jan 2023 - Matthias Voigt

Die Implementierung einer Statusseite mit IHealthCheck in ASP.NET Core ist eine effektive Methode, um den Zustand und die Verfügbarkeit von Anwendungen zu überwachen. Dieser Artikel gibt einen Überblick über die Einrichtung und Nutzung von Health Checks in ASP.NET Core.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du die folgenden Voraussetzungen erfüllst:

  1. Visual Studio 2019 oder höher
  2. .NET Core SDK 3.1 oder höher

Schritt 1: Projekt einrichten

Erstelle ein neues ASP.NET Core-Projekt oder öffne ein bestehendes Projekt.

Schritt 2: Health Checks konfigurieren

Füge die Health Checks in der Startup.cs-Datei hinzu. Im ConfigureServices-Abschnitt registrierst du die Health Checks:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddHealthChecks();
}

Schritt 3: Health Check-Endpunkt hinzufügen

Füge in der Configure-Methode die Middleware hinzu, um den Health Check-Endpunkt zu konfigurieren:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        endpoints.MapHealthChecks("/health");
    });
}

Schritt 4: Benutzerdefinierte Health Checks erstellen

Erstelle eine benutzerdefinierte Health Check-Klasse, die IHealthCheck implementiert. Dies ermöglicht dir, spezifische Überprüfungen durchzuführen:

public class ExampleHealthCheck : IHealthCheck
{
    public Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default)
    {
        bool healthCheckResultHealthy = true; // Hier deine Logik hinzufügen
        if (healthCheckResultHealthy)
        {
            return Task.FromResult(HealthCheckResult.Healthy("The check indicates a healthy result."));
        }

        return Task.FromResult(HealthCheckResult.Unhealthy("The check indicates an unhealthy result."));
    }
}

Registriere diesen benutzerdefinierten Health Check in der ConfigureServices-Methode:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddHealthChecks()
            .AddCheck<ExampleHealthCheck>("example_health_check");
}

Weitere Ressourcen

Diese Artikel bieten zusätzliche Informationen und Beispiele zur Implementierung von Health Checks in ASP.NET Core.

Fazit

Die Implementierung von Health Checks in ASP.NET Core ermöglicht es dir, den Zustand und die Verfügbarkeit deiner Anwendungen effektiv zu überwachen. Durch die Verwendung von IHealthCheck und die Konfiguration von Endpunkten kannst du sicherstellen, dass deine Anwendung jederzeit überwacht wird und Probleme frühzeitig erkannt werden.