[17.0.0.3 and later]

Réalisation de bilans de santé dans MicroProfile

Configurez la fonction mpHealth-1.0 et implémentez l'API HealthCheck pour fournir des bilans de santé dans votre microservice.

Pourquoi et quand exécuter cette tâche

Un bilan de santé est une implémentation de l'API MicroProfile Health fournie par un microservice. Utilisez les bilans de santé pour évaluer la santé d'un service. Ces bilans sont principalement conçus comme mécanisme de communication entre machines dans les environnements conteneurisés, comme les vérifications de signal de présence dans Kubernetes. La fonction mpHealth-1.0 fournit un noeud final /health qui représente le statut binaire, UP ou DOWN, des microservices installés. Un microservice peut fournir zéro ou plusieurs bilans de santé et la santé générale du serveur correspond à l'état ajouté de chaque bilan de santé. Le résultat général est uniquement positif si tous les bilans de santés donnent un résultat positif.

Procédure

  1. Configurez la fonction. Mettez à jour le fichier server.xml pour ajouter la fonction :
    <featureManager>
       <feature>mpHealth-1.0</feature>
    </featureManager>
  2. Utilisez l'API pour fournir les bilans de santés que vous souhaitez réaliser :
    @FunctionalInterface
    public interface HealthCheck {
    
        HealthCheckResponse call();
    }

    L'exemple suivant montre comment vous pouvez utiliser l'API pour vos bilans de santé :

    @Health
    @ApplicationScoped
    public class MyCheck implements HealthCheck {
    
       @Override
       public HealthCheckResponse call() {
            return HealthCheckResponse.named("MyCheck")
                    .withData("key1", "val1")
                    .withData("key2", "val2")
                    .up()
                    .build();
    
       }
    }
    La requête HTTP envoyée au noeud final /health renvoie une réponse avec l'un des codes de statut suivants :
    • Le code 200 indique un bilan de santé avec un résultat positif.
    • Le code 503 indique que le résultat global est négatif.
    • Le code 500 indique que le système n'a pas pu traiter la demande de bilan de santé. Ce code peut indiquer une erreur de procédure.

    La réponse contient également un contenu JSON (JavaScript Object Notation) avec les détails des bilans de santé. Le code suivant affiche un exemple de résultat positif :
    {
     "outcome": "UP",
     "checks": [
        {
          "name": "MyCheck",
          "state": "UP",
          "data: {
            "key": "value",
            "key1": "val1",
            "key2": "val2"
          }
        }
      ]
    }
    Le code suivant affiche un exemple de résultat négatif :
    {
     "outcome": "DOWN",
     "checks": [
       {
        "name": "check1",
        "state": "UP"
       },
       {
        "name": "check2",
        "state": "DOWN"
       }
      ]
    }
    Si vous configurez la fonction sans fournir un bilan de santé, le système répond avec le code 200. Le contenu contient un résultat positif de UP et un ensemble de bilans vide.

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_microprofile_healthcheck.html