カテゴリ: Quarkus 更新日: 2026/03/21

Quarkus Observability入門!QuarkusとPrometheus連携の基本を初心者向けに徹底解説

QuarkusとPrometheus連携の基本
QuarkusとPrometheus連携の基本

先生と生徒の会話形式で理解しよう

生徒

「Quarkusでアプリを作ったんですが、動いているかどうかをどうやって監視すればいいんですか?」

先生

「QuarkusではObservabilityの仕組みが用意されていて、Prometheusと連携すると状態を数値で確認できます。」

生徒

「Prometheusって名前は聞いたことがありますが、何をしてくれるものなんですか?」

先生

「アプリケーションのメトリクスを収集して、負荷や動作状況を可視化するための監視ツールです。では、Quarkusとの基本的な連携から見ていきましょう。」

1. Quarkus Observabilityとは何か

1. Quarkus Observabilityとは何か
1. Quarkus Observabilityとは何か

Quarkus Observabilityとは、Quarkusで作成したJavaアプリケーションの内部状態を外部から観測できるようにする考え方です。 観測という言葉は難しく聞こえますが、実際には「今アプリは元気に動いているか」「どれくらいリクエストが来ているか」 「エラーは発生していないか」といった情報を数値として確認することを意味します。 クラウドネイティブな環境やコンテナ、Kubernetes上で動くQuarkusアプリでは、ログだけでなくメトリクス監視が非常に重要になります。 その中心的な役割を担うのがPrometheusです。

2. Prometheusの基本的な役割

2. Prometheusの基本的な役割
2. Prometheusの基本的な役割

Prometheusはオープンソースの監視ツールで、アプリケーションが公開しているメトリクス情報を定期的に取得します。 取得した情報は時系列データとして保存され、CPU使用率やリクエスト数の増減を後から確認できます。 QuarkusとPrometheusを連携すると、Javaアプリケーションの内部状態を自動的に数値化できるため、 障害の早期発見やパフォーマンス改善につなげやすくなります。 特に初心者の方にとっては、数字で状況を把握できる点が大きなメリットです。

3. Quarkusでメトリクスを有効化する準備

3. Quarkusでメトリクスを有効化する準備
3. Quarkusでメトリクスを有効化する準備

QuarkusでPrometheus連携を行うには、まずメトリクス機能を有効化します。 QuarkusではMicroProfile Metricsという仕組みが用意されており、 拡張機能を追加するだけで基本的なメトリクスが自動的に提供されます。 ここではMavenプロジェクトを例に、設定の考え方を確認します。


<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-smallrye-metrics</artifactId>
</dependency>

この設定を追加することで、Quarkusアプリケーションは起動時からメトリクス情報を生成します。 初心者の方は、まず「特別なコードを書かなくても数値が取れる」という点を押さえておくと理解しやすくなります。

4. メトリクス確認用エンドポイントの仕組み

4. メトリクス確認用エンドポイントの仕組み
4. メトリクス確認用エンドポイントの仕組み

Quarkusでメトリクスを有効にすると、決められたURLでメトリクス情報が公開されます。 このURLをPrometheusが定期的にアクセスすることで、数値を収集します。 開発中はブラウザで直接アクセスして、どのような情報が出力されているかを確認するのがおすすめです。 表示される内容には、リクエスト数やレスポンス時間など、アプリケーションの健康状態を表す情報が含まれます。


quarkus.smallrye-metrics.path=/metrics

この設定により、メトリクスはmetricsというパスで公開されます。 初心者の段階では、まず「アクセスすると大量の数値が表示される」ことを体験するだけでも十分です。

5. 独自メトリクスを追加する基本例

5. 独自メトリクスを追加する基本例
5. 独自メトリクスを追加する基本例

標準メトリクスに慣れてきたら、独自のメトリクスを追加してみましょう。 Quarkusではアノテーションを使って簡単にカウント処理を追加できます。 例えば、特定のAPIが何回呼ばれたかを数えることで、利用状況を把握できます。 これはPrometheus連携の理解を深めるうえで、とても良い練習になります。


import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import org.eclipse.microprofile.metrics.annotation.Counted;

@Path("/hello")
public class HelloResource {

    @GET
    @Counted(name = "hello_count", description = "Hello APIの呼び出し回数")
    public String hello() {
        return "Hello Quarkus";
    }
}

このように設定すると、APIが呼ばれるたびに数値が増えていきます。 数字の変化を見ることで、アプリケーションが実際に使われている様子を実感できます。

6. PrometheusからQuarkusを監視する流れ

6. PrometheusからQuarkusを監視する流れ
6. PrometheusからQuarkusを監視する流れ

Prometheusは自分からデータを受け取るのではなく、対象のアプリケーションに取りに行く仕組みです。 QuarkusアプリのメトリクスURLをPrometheusに登録することで、自動的に監視が始まります。 この構造を理解すると、複数のQuarkusサービスをまとめて監視するイメージがつかみやすくなります。 Kubernetes環境でも同じ考え方が使われるため、基礎としてとても重要です。


scrape_configs:
  - job_name: "quarkus-app"
    static_configs:
      - targets: ["localhost:8080"]

この設定により、Prometheusは定期的にQuarkusアプリへアクセスし、メトリクスを収集します。 初心者の方は、まずローカル環境で動作を確認してから本番環境を意識すると理解が進みます。

7. QuarkusとPrometheus連携で得られるメリット

7. QuarkusとPrometheus連携で得られるメリット
7. QuarkusとPrometheus連携で得られるメリット

QuarkusとPrometheusを連携する最大のメリットは、アプリケーションの状態を数値で把握できる点です。 ログだけでは気づきにくい負荷の増加や異常も、メトリクスを見れば一目で分かります。 また、Observabilityの考え方に慣れておくことで、将来的に分散システムやマイクロサービスを扱う際にも役立ちます。 初心者の段階からこの仕組みに触れておくことは、Javaエンジニアとしての成長につながります。

カテゴリの一覧へ
新着記事
New1
Quarkus
Quarkus拡張開発をマスター!ビルドプロセスの仕組みと内部構造を徹底解説
New2
Micronaut
Micronautの@Factoryとは?複雑なBean生成を管理するための方法を解説
New3
Quarkus
QuarkusのDIとCDIを完全理解!@Producesでプロデューサーメソッドを使う方法を初心者向けに解説
New4
Java
JavaのStringBufferクラスを徹底解説!スレッド安全な文字列操作の仕組みと使い分け
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkus入門!GitHub ActionsでCI/CDパイプラインを構築して自動ビルドを実現する方法
No.2
Java&Spring記事人気No2
Java
Javaのコンパイルと実行の流れを解説!JVM・JDK・JREの違いも初心者向けに整理
No.3
Java&Spring記事人気No3
Quarkus
QuarkusのCI/CD入門!GitHub Actionsで自動デプロイを実現する方法
No.4
Java&Spring記事人気No4
Micronaut
Micronautのフィルタ徹底解説!HTTPリクエスト共通処理をスマートに追加する方法
No.5
Java&Spring記事人気No5
Micronaut
Micronautのルーティング設定ガイド!プレフィックス付与とAPIバージョニングの基本
No.6
Java&Spring記事人気No6
Java
Java Functionインタフェースの使い方を完全ガイド!map変換と処理チェーンを理解する
No.7
Java&Spring記事人気No7
Java
JavaのString比較を徹底解説!equalsと==の違い、初心者が陥る罠とは?
No.8
Java&Spring記事人気No8
Quarkus
Quarkus拡張開発を徹底解説!仕組みから自作エクステンションの作り方まで