14.4. MicroProfile HelthCheck

14.4.1. 概要

MicroProfile Health Checkは、マイクロサービス環境においてサービスのヘルス状態をチェックするための機能を提供します。

14.4.2. Health Check の MBean 設定項目

Health Check には以下の設定項目があります。設定の反映には、ドメインの再起動が必要です。

Health Check機能の設定
dotted-name(CLINAME) 説明 既定値
server.microprofile.microprofile-health.enabled /health を有効にするかどうかを設定します。true の場合は有効。false の場合は無効。 true

14.4.3. 提供機能

WebOTXは/healthエンドポイントを提供します。/healthエンドポイントにGETリクエストを受け付けると、ヘルスチェック応答をJSONフォーマットで返却します。
また、Webアプリケーションは固有のヘルスチェック応答(正常性(UP/DOWN)、データ(KEYとVALUE))を返却するためのクラスを実装することができます。 WebOTXはヘルスチェック応答を返却する際、各Webアプリケーションのヘルスチェック応答を収集し、全体的な正常性に集約して返却します。

MicroProfile Health Checkは、Webアプリケーションのヘルスチェック応答を返却するクラス(以下、「ヘルスチェック応答クラス」と呼称します)のために、次のアノテーションを提供します。

アノテーション一覧
名称 説明 アノテーション名
Health ヘルスチェック応答を返却するクラスであることを定義します。 @Health

ヘルスチェック応答クラスはorg.eclipse.microprofile.health.HealthCheckクラスを継承すると共にorg.eclipse.microprofile.health.Healthアノテーション、javax.enterprise.context.ApplicationScopedアノテーションを定義する必要があります。ヘルスチェック応答クラスは他のclassファイルと同様にWebアプリケーションのWEB-INF/clasesやWEB-INF/libに格納します。

14.4.4. 記述例

HealthCheckResponseで正常性を返却するサンプルコードです。

import javax.enterprise.context.ApplicationScoped;
import org.eclipse.microprofile.health.Health;
import org.eclipse.microprofile.health.HealthCheck;
import org.eclipse.microprofile.health.HealthCheckResponse;

@Health
@ApplicationScoped
public class SampleHelthClass implements HealthCheck {

    @Override
    public HealthCheckResponse call() {

            return HealthCheckResponse.named("SampleHealth").
                up().
                withData("dataName", "dataValue").
                build();
    }
}

上記のクラスを含むWebアプリケーションを配備し、/healthエンドポイントにアクセスすると次のようにJSONフォーマットのレスポンスが返却されます。

{"checks": [
{"name":"SampleHealth","state":"UP","data": {"dataName":"dataValue"}}],
"outcome": "UP"
}

HealthCheckResponseで異常性を返却する場合はup()部分をdown()に変更します。

            :
            return HealthCheckResponse.named("SampleHealth").
                doen().
                withData("dataName", "dataValue").
                build();
            :