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

QuarkusでMicroProfile Metricsを有効化する方法を完全解説|Observability入門

QuarkusでMicroProfile Metricsを有効化する方法
QuarkusでMicroProfile Metricsを有効化する方法

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

生徒

「Quarkusでアプリの状態を数値で確認できる仕組みがあると聞いたんですが、本当ですか?」

先生

「あります。QuarkusではMicroProfile Metricsを使うことで、リクエスト数や処理時間などを簡単に可視化できます。」

生徒

「設定が難しそうで不安です。初心者でも使えますか?」

先生

「依存関係を追加して少し設定するだけなので、Java初心者でも十分に扱えます。順番に見ていきましょう。」

1. QuarkusとObservabilityの基本概要

1. QuarkusとObservabilityの基本概要
1. QuarkusとObservabilityの基本概要

Quarkusは、Java向けに最適化された軽量なフレームワークで、クラウドネイティブやマイクロサービス開発に強みがあります。 Observabilityとは、アプリケーションの内部状態を外部から把握できるようにする考え方で、主にメトリクス、ログ、トレースの三つで構成されます。 その中でもMicroProfile Metricsは、アプリケーションの数値情報を収集するための重要な仕組みです。 QuarkusではMicroProfile Metricsが公式にサポートされており、設定も非常にシンプルです。

2. MicroProfile Metricsとは何か

2. MicroProfile Metricsとは何か
2. MicroProfile Metricsとは何か

MicroProfile Metricsは、Eclipse MicroProfile仕様の一つで、Javaアプリケーションの動作状況を数値として公開するための仕組みです。 例えば、エンドポイントが何回呼ばれたか、処理にどれくらい時間がかかったかといった情報を取得できます。 これらの情報はPrometheusなどの監視ツールと連携することが多く、Quarkus Observabilityの中心的な役割を担います。 初心者にとっても、数値で状態を確認できる点は理解しやすく、大きなメリットです。

3. QuarkusでMetrics拡張を追加する方法

3. QuarkusでMetrics拡張を追加する方法
3. QuarkusでMetrics拡張を追加する方法

QuarkusでMicroProfile Metricsを使うためには、専用の拡張機能を追加します。 Mavenを利用している場合は、依存関係を一行追加するだけで準備が整います。 この拡張を追加することで、Quarkusは自動的にメトリクス用のエンドポイントを有効化します。 ここでは、pomファイルに追加する基本的な設定を確認します。


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

4. Metricsエンドポイントの確認方法

4. Metricsエンドポイントの確認方法
4. Metricsエンドポイントの確認方法

拡張機能を追加してQuarkusアプリケーションを起動すると、メトリクス情報が自動的に公開されます。 デフォルトでは、ローカル環境で指定されたパスにアクセスすることで、数値データを確認できます。 表示される内容には、JVMの状態やHTTPリクエストの情報などが含まれます。 まずはブラウザでアクセスし、どのような情報が見えるのかを体感することが大切です。


http://localhost:8080/metrics

5. アノテーションを使ったメトリクスの追加

5. アノテーションを使ったメトリクスの追加
5. アノテーションを使ったメトリクスの追加

MicroProfile Metricsでは、アノテーションを使って独自のメトリクスを定義できます。 例えば、特定のメソッドが何回呼ばれたかをカウントしたい場合に便利です。 Quarkusでは、Javaクラスにアノテーションを付与するだけで自動的に計測が行われます。 ここでは、シンプルなカウンターを追加する例を紹介します。


import org.eclipse.microprofile.metrics.annotation.Counted;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;

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

    @GET
    @Counted(name = "hello_count", description = "Helloが呼ばれた回数")
    public String hello() {
        return "Hello Quarkus";
    }
}

6. 処理時間を計測するタイマーの使い方

6. 処理時間を計測するタイマーの使い方
6. 処理時間を計測するタイマーの使い方

呼び出し回数だけでなく、処理にかかった時間を計測することも重要です。 MicroProfile Metricsでは、タイマー用のアノテーションを利用することで簡単に実現できます。 パフォーマンスのボトルネックを探す際に非常に役立ちます。 初心者でも、処理が遅い箇所を数値で把握できる点は大きな学習効果があります。


import org.eclipse.microprofile.metrics.annotation.Timed;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;

@Path("/time")
public class TimeResource {

    @GET
    @Timed(name = "time_process", description = "処理時間の計測")
    public String process() {
        return "processing";
    }
}

7. 設定ファイルでの基本的な調整

7. 設定ファイルでの基本的な調整
7. 設定ファイルでの基本的な調整

Quarkusでは、設定ファイルを使ってMetricsの挙動を調整できます。 例えば、本番環境ではメトリクスを有効にし、開発環境では無効にするといった制御も可能です。 applicationプロパティに設定を追加するだけで、柔軟な運用が実現できます。 設定管理に慣れておくことで、Observability全体の理解も深まります。


quarkus.smallrye-metrics.enabled=true

8. Prometheus連携を意識した使い方

8. Prometheus連携を意識した使い方
8. Prometheus連携を意識した使い方

MicroProfile Metricsは、そのままPrometheusと連携できる形式でデータを提供します。 Quarkusで公開されたメトリクスをPrometheusが定期的に取得することで、グラフ化やアラート設定が可能になります。 初心者の段階では、まず数値が取得できていることを確認するだけでも十分です。 将来的に本格的な監視を行う際の基礎として、Quarkus Observabilityの考え方を理解しておくと役立ちます。

カテゴリの一覧へ
新着記事
New1
Quarkus
QuarkusのREST APIでJSONレスポンスを返す方法を完全解説!初心者向けJackson・JSON-B入門
New2
Quarkus
Quarkus拡張開発入門!GraalVMネイティブイメージ統合の仕組みを徹底解説
New3
Micronaut
Micronautの@Requiresとは?条件付きBeanの読み込み方法をやさしく解説【DIとアノテーション入門】
New4
Quarkus
Quarkusでマイクロサービス構成を作るプロジェクト設計を完全解説!初心者でも理解できる分割設計の考え方
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkus拡張開発を徹底解説!仕組みから自作エクステンションの作り方まで
No.2
Java&Spring記事人気No2
Java
Javaのコンパイルと実行の流れを解説!JVM・JDK・JREの違いも初心者向けに整理
No.3
Java&Spring記事人気No3
Java
JavaのString検索方法を完全ガイド!contains・indexOf・startsWith・endsWithを徹底解説
No.4
Java&Spring記事人気No4
Quarkus
Quarkus入門!GitHub ActionsでCI/CDパイプラインを構築して自動ビルドを実現する方法
No.5
Java&Spring記事人気No5
Java
JavaのString比較を徹底解説!equalsと==の違い、初心者が陥る罠とは?
No.6
Java&Spring記事人気No6
Java
Java Functionインタフェースの使い方を完全ガイド!map変換と処理チェーンを理解する
No.7
Java&Spring記事人気No7
Quarkus
Quarkus拡張開発入門!自作Extensionを作る基本ステップと仕組みを徹底解説
No.8
Java&Spring記事人気No8
Micronaut
Micronautのリクエスト制限(Rate Limiting)を徹底解説!サーバーを守る流量制御