[17.0.0.3 und höher]

MicroProfile-Vitalitätsprüfungen durchführen

Konfigurieren Sie das Feature mpHealth-1.0 und implementieren Sie die HealthCheck-API (Application Programming Interface, Anwendungsprogrammierschnittstelle), um Ihrem Mikroservice Vitalitätsprüfungen zur Verfügung zu stellen.

Informationen zu diesem Vorgang

Unter einer Vitalitätsprüfung versteht man die Implementierung einer MicroProfile-Health-API, die von einem Mikroservice bereitgestellt wird. Verwenden Sie Vitalitätsprüfungen, um den fehlerfreien Zustand eines Service zu beurteilen. Diese Prüfungen dienen hauptsächlich als Machine-to-Machine-Mechanismen in containerisierten Umgebungen, wie z. B. für Betriebsbereitschaftsprüfungen in Kubernetes. Das Feature mpHealth-1.0 stellt einen /health-Endpunkt zur Verfügung, der den Binärstatus (entweder UP oder DOWN) der installierten Mikroservices darstellt. Ein Mikroservice kann keine oder mehrere Vitalitätsprüfungen bereitstellen. Der Gesamtzustand des Servers ist das Aggregat der Status aus allen Vitalitätsprüfungen. Das Gesamtergebnis ist nur dann positiv, wenn alle Vitalitätsprüfungsberichte ein positives Ergebnis berichten.

Vorgehensweise

  1. Konfigurieren Sie das Feature. Aktualisieren Sie die Datei server.xml, um das Feature hinzuzufügen:
    <featureManager>
       <feature>mpHealth-1.0</feature>
    </featureManager>
  2. Verwenden Sie die API, um die Vitalitätsprüfungen bereitzustellen, die Sie durchführen möchten:
    @FunctionalInterface
    public interface HealthCheck {
    
        HealthCheckResponse call();
    }

    Das folgende Beispiel zeigt, wie Sie die API für Vitalitätsprüfungen verwenden können:

    @Health
    @ApplicationScoped
    public class MyCheck implements HealthCheck {
    
       @Override
       public HealthCheckResponse call() {
            return HealthCheckResponse.named("MyCheck")
                    .withData("key1", "val1")
                    .withData("key2", "val2")
                    .up()
                    .build();
    
       }
    }
    Die HTTP-Anforderung an den /health-Endpunkt gibt eine Antwort mit einem der folgenden Statuscodes zurück:
    • Code 200 gibt eine Vitalitätsprüfung mit einem positivem Ergebnis an.
    • Code 503 gibt an, dass das Gesamtergebnis negativ ist.
    • Code 500 gibt an, dass das System die Vitalitätsprüfungsanforderung nicht verarbeiten konnte. Dieser Code gibt möglicherweise einen Fehler bei der Prozedur aus.

    Die Antwort enthält auch JSON-Nutzdaten (JavaScript Object Notation) mit den Details zur Vitalitätsprüfung. Der folgende Code zeigt, wie beispielsweise ein positives Ergebnis aussieht:
    {
     "outcome": "UP",
     "checks": [
        {
          "name": "MyCheck",
          "state": "UP",
          "data: {
            "key": "value",
            "key1": "val1",
            "key2": "val2"
          }
        }
      ]
    }
    Der folgende Code zeigt, wie beispielsweise ein negatives Ergebnis aussieht:
    {
     "outcome": "DOWN",
     "checks": [
       {
        "name": "check1",
        "state": "UP"
       },
       {
        "name": "check2",
        "state": "DOWN"
       }
      ]
    }
    Wenn Sie das Feature konfigurieren, jedoch keine Vitalitätsprüfungen bereitstellen, antwortet das System mit dem Code 200. Die Nutzdaten enthalten ein positives Ergebnis für UP und einen leeren Satz von Prüfungen.

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_microprofile_healthcheck.html