Acerca de esta tarea
Una
comprobación de estado es una implementación de la
API de estado de MicroProfile que proporciona un microservicio. Utilice comprobaciones de estado para acceder al estado de un servicio. Estas comprobaciones pretenden ser, básicamente, mecanismos de máquina a máquina en entornos en contenedores como, por ejemplo,
comprobaciones de "vitalidad" en Kubernetes. La característica
mpHealth-1.0 proporciona un punto final
/health que representa el estado binario, ya sea
UP o
DOWN, de los microservicios que están instalados. Un microservicio puede proporcionar cero o más comprobaciones de estado y el estado general del servidor es el agregado del estado de cada comprobación de estado. El resultado global es positivo solo si todas las comprobaciones de estado notifican un resultado positivo.
- Configure la característica. Actualice el archivo server.xml para añadir la característica:
<featureManager>
<feature>mpHealth-1.0</feature>
</featureManager>
- Utilice la API para proporcionar las comprobaciones de estado que desea realizar:
@FunctionalInterface
public interface HealthCheck {
HealthCheckResponse call();
}
El ejemplo siguiente muestra cómo puede utilizar la API para comprobaciones de estado:
@Health
@ApplicationScoped
public class MyCheck implements HealthCheck {
@Override
public HealthCheckResponse call() {
return HealthCheckResponse.named("MyCheck")
.withData("key1", "val1")
.withData("key2", "val2")
.up()
.build();
}
}
La solicitud HTTP al punto final /health devuelve una respuesta con uno de los códigos de estado siguientes:- El código 200 indica una comprobación de estado con un resultado positivo.
- El código 503 indica que el resultado general es negativo.
- El código 500 indica que el sistema no ha podido procesar la solicitud de la comprobación de estado. Este código podría indicar un error en el procedimiento.
La respuesta también contiene una carga útil de JavaScript Object
Notation (JSON) con los detalles de las comprobaciones de estado. El código siguiente muestra un ejemplo de un resultado positivo:{
"outcome": "UP",
"checks": [
{
"name": "MyCheck",
"state": "UP",
"data: {
"key": "value",
"key1": "val1",
"key2": "val2"
}
}
]
}
El código siguiente muestra un ejemplo de un resultado negativo:{
"outcome": "DOWN",
"checks": [
{
"name": "check1",
"state": "UP"
},
{
"name": "check2",
"state": "DOWN"
}
]
}
Si configura la característica, pero no proporciona ninguna comprobación de estado, el sistema responde con el código 200.
La carga útil contiene un resultado positivo de UP y un conjunto vacío de comprobaciones.