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

Quarkus Observability入門|GrafanaでQuarkusアプリのメトリクスを可視化する方法を初心者向けに解説

GrafanaでQuarkusアプリのメトリクスを可視化
GrafanaでQuarkusアプリのメトリクスを可視化

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

生徒

「Quarkusで作ったアプリがちゃんと動いているか、数字で確認する方法ってありますか?」

先生

「あります。Quarkus Observabilityの仕組みを使うと、アプリの状態をメトリクスとして取得できます。」

生徒

「そのメトリクスは、どうやって見るんですか?」

先生

「Grafanaという可視化ツールを使うと、CPU使用率やリクエスト数をグラフで確認できます。」

生徒

「初心者でも設定できますか?」

先生

「順番に進めれば大丈夫です。Quarkus、Prometheus、Grafanaを連携させていきましょう。」

1. Quarkus Observabilityとは何か

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

Quarkus Observabilityとは、Quarkusアプリケーションの内部状態を外から観測できるようにする考え方です。Javaで作られたQuarkusアプリは、高速起動や軽量動作が特徴ですが、運用時にはアプリの状態を把握することが重要です。Observabilityでは、メトリクス、ログ、トレースといった情報を通して、アプリの動きや負荷状況を理解します。

特にメトリクスは、数値として状態を確認できるため、初心者でも理解しやすい要素です。QuarkusではMicrometerが標準的に使われており、PrometheusやGrafanaと簡単に連携できます。

2. Grafanaで可視化するメリット

2. Grafanaで可視化するメリット
2. Grafanaで可視化するメリット

Grafanaは、メトリクスをグラフやダッシュボードとして表示できる可視化ツールです。Quarkusアプリ単体では数値の一覧しか見られませんが、Grafanaを使うことで時間変化や傾向を直感的に把握できます。

例えば、リクエスト数の増加やレスポンス時間の変化を視覚的に確認できるため、障害の予兆にも気づきやすくなります。Quarkus ObservabilityとGrafanaを組み合わせることで、運用監視の第一歩を踏み出せます。

3. Quarkusでメトリクスを有効化する設定

3. Quarkusでメトリクスを有効化する設定
3. Quarkusでメトリクスを有効化する設定

まずはQuarkusアプリ側でメトリクスを有効にします。MicrometerとPrometheusの拡張を追加することで、メトリクスが自動的に収集されます。設定はシンプルで、初心者でも理解しやすい構成です。


import io.quarkus.runtime.Startup;

@Startup
public class SampleStartup {
    public SampleStartup() {
        System.out.println("Quarkus application started");
    }
}

このようなシンプルなQuarkusアプリでも、HTTPリクエスト数やJVMメモリ使用量といった基本的なメトリクスが自動的に取得されます。

4. メトリクス確認用エンドポイントの理解

4. メトリクス確認用エンドポイントの理解
4. メトリクス確認用エンドポイントの理解

Quarkusでは、メトリクス確認用のエンドポイントが用意されています。ブラウザでアクセスすると、Prometheus形式の数値データが表示されます。この状態が確認できれば、Grafana連携の準備は整っています。


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

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

    @GET
    public String hello() {
        return "Hello Quarkus";
    }
}

このエンドポイントにアクセスすると、リクエスト回数がメトリクスとして記録されます。数値が増えていく様子を確認することで、Observabilityの感覚をつかめます。

5. PrometheusとGrafanaの役割分担

5. PrometheusとGrafanaの役割分担
5. PrometheusとGrafanaの役割分担

Prometheusはメトリクスを収集して保存する役割を持ちます。一方、Grafanaはそのデータを読み取り、グラフとして表示します。Quarkus Observabilityでは、この二つを組み合わせるのが定番構成です。

Grafana単体ではデータを持たないため、必ずPrometheusのようなデータソースが必要です。この仕組みを理解すると、全体の流れが見えやすくなります。


<div class="container">
    <h3>Quarkus Observability構成</h3>
    <ul>
        <li>Quarkusアプリ:メトリクス提供</li>
        <li>Prometheus:メトリクス収集</li>
        <li>Grafana:メトリクス可視化</li>
    </ul>
</div>

6. Grafanaダッシュボードで見る代表的なメトリクス

6. Grafanaダッシュボードで見る代表的なメトリクス
6. Grafanaダッシュボードで見る代表的なメトリクス

Grafanaでは、Quarkusアプリのさまざまなメトリクスを確認できます。代表的なものとして、HTTPリクエスト数、レスポンス時間、JVMメモリ使用量などがあります。

初心者は、まずリクエスト数とメモリ使用量を見るだけでも十分です。数値が増減する様子を観察することで、アプリの負荷状況が感覚的に理解できます。

7. 開発環境で可視化を試すポイント

7. 開発環境で可視化を試すポイント
7. 開発環境で可視化を試すポイント

最初は本番環境ではなく、ローカル開発環境でGrafana可視化を試すのがおすすめです。Quarkusは起動が速いため、設定変更と確認を何度も繰り返せます。

数値が表示されない場合は、Quarkusアプリが起動しているか、Prometheusが正しく接続されているかを確認します。原因を一つずつ切り分けることが、Observability理解への近道です。


public class LoadSimulator {

    public void execute() {
        for (int i = 0; i < 100; i++) {
            System.out.println("simulate request " + i);
        }
    }
}

8. Quarkus Observabilityを学ぶ意味

8. Quarkus Observabilityを学ぶ意味
8. Quarkus Observabilityを学ぶ意味

Quarkus Observabilityを理解すると、単にアプリを作るだけでなく、運用を意識した開発ができるようになります。Grafanaでメトリクスを可視化する経験は、クラウドネイティブ開発において大きな武器になります。

初心者の段階から数値でアプリを見る習慣を身につけることで、トラブル対応や性能改善にも強くなります。Quarkus、Prometheus、Grafanaの組み合わせは、今後も長く使われる定番技術です。

カテゴリの一覧へ
新着記事
New1
Micronaut
Micronautの@Factoryとは?複雑なBean生成を管理するための方法を解説
New2
Quarkus
QuarkusのDIとCDIを完全理解!@Producesでプロデューサーメソッドを使う方法を初心者向けに解説
New3
Java
JavaのStringBufferクラスを徹底解説!スレッド安全な文字列操作の仕組みと使い分け
New4
Micronaut
Micronautで非同期HTTP処理を行う方法!リアクティブ対応の基礎知識
人気記事
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のルーティング設定ガイド!プレフィックス付与とAPIバージョニングの基本
No.5
Java&Spring記事人気No5
Micronaut
Micronautのフィルタ徹底解説!HTTPリクエスト共通処理をスマートに追加する方法
No.6
Java&Spring記事人気No6
Java
Java Optional ifPresentの使い方を徹底解説!nullチェックをスマートに省略する方法
No.7
Java&Spring記事人気No7
Java
Java Functionインタフェースの使い方を完全ガイド!map変換と処理チェーンを理解する
No.8
Java&Spring記事人気No8
Java
JavaのString比較を徹底解説!equalsと==の違い、初心者が陥る罠とは?