はじめに
今回は、前にEclipse MicroProfileとはで概要を紹介したEclipse MicroProfile Healthを試してみたいと思います。
始め方
今回も、前にEclipse MicroProfileの始め方で紹介した、
MicroProfile Starterを使っていきます。
こちらの設定でプロジェクトを作成、ダウンロードします。
ファイル構成は以下のようになっています。
ビルド、アプリ起動しlocalhost:8080へアクセスすると以下のようなTop画面が用意されています。
Health status (with custom status ServiceHealthCheck) にアクセスすると以下が表示されます。
このままだと見にくいので、Firefoxで開きます。
ヘルスチェック結果が応答できてますね!
実装の解説
import org.eclipse.microprofile.health.Health;
import org.eclipse.microprofile.health.HealthCheck;
import org.eclipse.microprofile.health.HealthCheckResponse;
import javax.enterprise.context.ApplicationScoped;
// ヘルスチェックを行うことを示すアノテーションだが、最新バージョンでは非推奨となっている。このアノテーションをつける必要がなくなったもの
@Health
@ApplicationScoped
// HealthCheckを実装することにより、チェック項目と応答内容を定義することができる
public class ServiceHealthCheck implements HealthCheck {
@Override
public HealthCheckResponse call() {
// ServiceHealthCheckというヘルスチェック項目でUpとなっていることを応答する
return HealthCheckResponse.named(ServiceHealthCheck.class.getSimpleName()).up().build();
}
}
ここで、先ほどの応答内容のJsonを見ると、
- ServiceHealthCheck
- deadlock
- diskSpace
- heapMemory
の4つの項目が返却されています。ServiceHealthCheckについては上記で実装されたものとなりますが、それ以外の3つについては、実装されてませんので、予めHelidon側で用意されたヘルスチェック項目である、と言えます。
チェックの種類
仕様としては、今回紹介した@Health
以外にも以下が仕様として定義されています。
- Readiness チェックとして定義する
@Readiness
- アプリケーションがリクエストを処理する準備ができているかを確認する
- Liveness チェックとして定義する
@Liveness
- アプリケーションが実行されているかどうかを判断する。これがDownを返却する場合、アプリケーションを破棄(終了、シャットダウン)できることを意味します
まとめ
今回はミニマム構成での説明に止まりましたが、利用開始にあたっての容易さは理解できたのではないでしょうか?
次回はまた別の仕様を試してみたいと思います
参考リンク
- 公式ドキュメント