6.2. Quarkus アプリケーションの OpenShift へのデプロイ
必要なインフラストラクチャーの設定後、Prometheus で Micrometer を有効にする必要があります。
前提条件
- OpenShift CLI の使用方法 (4.6 以降) にアクセスできる。
- OpenShift インスタンスがある。
- 直前のセクションで ConfigMap を作成し、OpenShift でユーザー定義プロジェクトのモニタリングを有効化 している。
手順
REST API を実装します。
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-micrometer-registry-prometheus</artifactId> </dependency>micrometer レジストリーファサードを追加します。
import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import io.micrometer.core.instrument.MeterRegistry; @Path("/hello") public class GreetingsResource { @Inject MeterRegistry registry; @GET public String sayHello() { registry.counter("greeting_counter").increment(); return "Hello!"; } }この Micrometer ファサードは、サービスを呼び出すたびにインクリメントされるカウンターを作成します。レジストリーは、カスタムメトリクスの作成またはメトリクスの手動での使用に役立ちます。また、以下のようにメソッドにアノテーションを付けることもできます。
@GET @Counted(value = "greeting_counter") public String sayHello() { return "Hello!"; }アプリケーションを実行します。
mvn compile quarkus:devサービスを呼び出します。
curl http://localhost:8080/helloサービスは
Hello!を返すはずです。http://localhost:8080/q/metricsを参照します。(完了したばかりの) カウント 1.0 のgreeting_counterが表示されるはずです。# HELP greeting_counter_total #TYPE greeting_counter_total counter greeting_counter_total 1.0エクステンション
quarkus-openshiftをpom.xmlに入力して、Quarkus アプリケーションを OpenShift にデプロイします。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-openshift</artifactId> </dependency>アプリケーションを OpenShift の
my-projectという名前の新規作成されたプロジェクトにデプロイします。oc new-project my-project mvn clean package -Dquarkus.kubernetes.deploy=true -Dquarkus.openshift.expose=true -Dquarkus.openshift.labels.app-with-metrics=quarkus-app
app-with-metrics に関する説明は、OpenShift プロジェクトでのサービスモニターの作成 を参照してください。
非セキュアな SSL で OpenShift を使用している場合は、Maven コマンドに -Dquarkus.kubernetes-client.trust-certs=true も追加する必要があります。