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.
- Konfigurieren Sie das Feature. Aktualisieren Sie die Datei server.xml, um das Feature hinzuzufügen:
<featureManager>
<feature>mpHealth-1.0</feature>
</featureManager>
- 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.