MicroProfile ヘルス・チェックの実行

マイクロサービス内でヘルス・チェックを提供するには、mpHealth-1.0 フィーチャーを構成し、HealthCheck アプリケーション・プログラミング・インターフェース (API) を実装します。

Open Liberty mpHealth-2.1 以降のバージョンのフィーチャーに関する資料は、Open Liberty Web サイトにあります。

このタスクについて

ヘルス・チェック は、マイクロサービスによって提供される MicroProfile Health API 実装です。ヘルス・チェックはサービスの正常性を評価するために使用します。これらのチェックは主に、Kubernetes の liveness チェックなどのように、コンテナー化された環境でのマシンツーマシンのメカニズムとして意図されています。mpHealth-1.0 フィーチャーは、インストールされたマイクロサービスの 2 項状況 (UP または DOWN のいずれか) を表す /health エンドポイントを提供します。マイクロサービスはゼロ個以上のヘルス・チェックを提供でき、サーバーの全体的正常性は各ヘルス・チェックからの状況を集約したものです。すべてのヘルス・チェック・レポートが肯定的結果である場合のみ、全体的な結果が肯定的になります。

手順

  1. フィーチャーを構成します。server.xml ファイルを更新して、フィーチャーを追加します。
    <featureManager>
       <feature>mpHealth-1.0</feature>
    </featureManager>
  2. API を使用して、実行したいヘルス・チェックを提供します。
    @FunctionalInterface
    public interface HealthCheck {
    
        HealthCheckResponse call();
    }

    次の例は、ヘルス・チェックのために API を使用する方法を示しています。

    @Health
    @ApplicationScoped
    public class MyCheck implements HealthCheck {
    
       @Override
       public HealthCheckResponse call() {
            return HealthCheckResponse.named("MyCheck")
                    .withData("key1", "val1")
                    .withData("key2", "val2")
                    .up()
                    .build();
    
       }
    }
    /health エンドポイントへの HTTP 要求は、以下のいずれかの状況コードを含む応答を返します。
    • コード 200 は、ヘルス・チェックの結果が肯定的であることを示します。
    • コード 503 は、全体的な結果が否定的であることを示します。
    • コード 500 は、システムがヘルス・チェック要求を処理できなかったことを示します。このコードは、プロシージャーにエラーがあることを示している可能性があります。

    応答には、ヘルス・チェックの詳細が入った JavaScript Object Notation (JSON) ペイロードも含まれています。以下のコードは、肯定的な結果の例を示しています。
    {
     "outcome": "UP",
     "checks": [
        {
          "name": "MyCheck",
          "state": "UP",
          "data: {
            "key": "value",
            "key1": "val1",
            "key2": "val2"
          }
        }
      ]
    }
    以下のコードは、否定的な結果の例を示しています。
    {
     "outcome": "DOWN",
     "checks": [
       {
        "name": "check1",
        "state": "UP"
       },
       {
        "name": "check2",
        "state": "DOWN"
       }
      ]
    }
    フィーチャーを構成するが、ヘルス・チェックを提供しない場合、システムはコード 200 で応答します。ペイロードには、UP の肯定的結果と、チェックの空セットが含まれます。