すべてのプロダクト
Search
ドキュメントセンター

:Micrometer を使用した Java アプリケーションの監視

最終更新日:Aug 28, 2026

このトピックでは、Managed Service for Prometheus を使用して Micrometer Java アプリケーションを監視する方法について説明します。

前提条件

Java アプリケーションが作成されていること。

ステップ 1: Java アプリケーションへの Micrometer の追加

説明

このトピックでは、最も一般的に使用される Spring Boot 2.x アプリケーションを例に説明します。

  1. Java アプリケーションに Spring Boot Actuator を追加するため、プロジェクトの pom.xml ファイルに Actuator の依存関係を追加します。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    説明

    最新バージョンを入手するには、Alibaba Cloud リポジトリで検索してください。

  2. Actuator を構成します。application.properties ファイルに次の構成を追加して、Prometheus のモニタリングデータのポートとスコープを公開します。

    management.server.port=8080
    management.endpoints.web.exposure.include=xxx, prometheus
  3. プロジェクトの pom.xml ファイルに Micrometer Prometheus レジストリの依存関係を追加します。

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>
    説明

    最新バージョンを取得するには、Alibaba Cloud リポジトリで検索してください。

  4. プロジェクトの pom.xml ファイルに Micrometer JVM Extras の依存関係を追加します。

    <dependency>
        <groupId>io.github.mweirauch</groupId>
        <artifactId>micrometer-jvm-extras</artifactId>
        <version>0.2.2</version>
    </dependency>
    説明

    最新バージョンを取得するには、Alibaba Cloud リポジトリで検索してください。

  5. Micrometer JVM Extras を構成します。次の 2 つの Spring Bean 定義を追加して、メモリとスレッドのメトリクスを公開します。

    /* Spring を使用する場合 */
    @Bean
    public MeterBinder processMemoryMetrics() {
        return new ProcessMemoryMetrics();
    }
    @Bean
    public MeterBinder processThreadMetrics() {
        return new ProcessThreadMetrics();
    }
  6. Java アプリケーションをコンテナサービスまたは Elastic Compute Service (ECS) にデプロイします。

    ビジネスシナリオに基づいて、Java アプリケーションをコンテナサービスまたは ECS にデプロイします。デプロイが成功したら、アプリケーションのリスニングアドレス http://localhost:8080/actuator/prometheus (ポート 8080application.properties ファイルで指定したものです。実際のポート番号に合わせて、URL 内のポートを変更してください) にアクセスし、メトリクスが正しく公開されていることを確認してください。

    アクセスが成功すると、ページには次のような Prometheus 形式のメトリクスデータが返されます。

    # HELP jvm_memory_used_bytes 使用中のメモリ量
    # TYPE jvm_memory_used_bytes gauge
    jvm_memory_used_bytes{area="heap",id="G1 Survivor Space",} 2964360.0
    jvm_memory_used_bytes{area="heap",id="G1 Old Gen",} 1.285324E7
    jvm_memory_used_bytes{area="nonheap",id="Metaspace",} 3.6128128E7
    jvm_memory_used_bytes{area="nonheap",id="CodeCache",} 9673088.0
    jvm_memory_used_bytes{area="heap",id="G1 Eden Space",} 6.7108864E7
    jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space",} 4999168.0
    # HELP jvm_threads_live_threads デーモンスレッドと非デーモンスレッドの両方を含む現在の実行中スレッド数
    # TYPE jvm_threads_live_threads gauge
    jvm_threads_live_threads 28.0
    # HELP jvm_memory_committed_bytes Java 仮想マシンにコミット済みのメモリ量 (バイト単位)
    # TYPE jvm_memory_committed_bytes gauge
    jvm_memory_committed_bytes{area="heap",id="G1 Survivor Space",} 4194304.0
    jvm_memory_committed_bytes{area="heap",id="G1 Old Gen",} 5.8720256E7
    jvm_memory_committed_bytes{area="nonheap",id="Metaspace",} 3.6569088E7
    jvm_memory_committed_bytes{area="nonheap",id="CodeCache",} 1.0682368E7
    jvm_memory_committed_bytes{area="heap",id="G1 Eden Space",} 9.646899E7
    jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space",} 5177344.0
    # HELP executor_pool_max_threads プールで許可されるスレッドの最大数
    # TYPE executor_pool_max_threads gauge
    executor_pool_max_threads{name="applicationTaskExecutor",} 2.147483647E9
    ...
    # TYPE jvm_buffer_count_buffers gauge
    jvm_buffer_count_buffers{id="mapped - 'non-volatile memory'",} 0.0
    jvm_buffer_count_buffers{id="mapped",} 0.0
    jvm_buffer_count_buffers{id="direct",} 7.0
    # HELP jvm_buffer_total_capacity_bytes このプール内のバッファの合計容量の推定値
    # TYPE jvm_buffer_total_capacity_bytes gauge
    jvm_buffer_total_capacity_bytes{id="mapped - 'non-volatile memory'",} 0.0
    jvm_buffer_total_capacity_bytes{id="mapped",} 0.0
    jvm_buffer_total_capacity_bytes{id="direct",} 57344.0
    # HELP jvm_threads_peak_threads Java 仮想マシンの起動後またはピークがリセットされてからのピーク実行中スレッド数
    # TYPE jvm_threads_peak_threads gauge
    jvm_threads_peak_threads 30.0
    # HELP jvm_threads_states_threads 現在のスレッド数
    # TYPE jvm_threads_states_threads gauge
    jvm_threads_states_threads{state="runnable",} 11.0
    jvm_threads_states_threads{state="blocked",} 0.0

ステップ 2: Micrometer の統合

  1. 左側のナビゲーションペインで、[統合センター] を選択します。 次に、検索ボックスに MicroMeter と入力してクリックします。

  2. Cloud Monitor コンソールにログインします。ナビゲーションペインで、[インテグレーションセンター] を選択します。次に、検索ボックスに [Micrometer] と入力してクリックします。

    MicroMeter component in Integration Center

  3. Micrometer パネルの [Start Integration] タブで、[Environment Type] を選択し、[OK] をクリックして統合を完了します。

    パラメータ

    説明

    Environment Type

    コンテナサービス環境と ECS (VPC) の 2 つのサービス環境を統合できます。

    Cluster

    対象のクラスターを選択します。

    Pod Labels

    Micrometer サービスがデプロイされている Pod のラベルです (特定の識別子を持つラベルを使用することを推奨します)。

    Service Port

    Java アプリケーションのサービスポートです。デフォルトのポート番号が自動的に入力されます。

    Metrics Path

    Micrometer メトリクスを公開するパスです。デフォルトのパスが自動的に入力されます。

    Collect using HTTPS

    メトリクスはデフォルトで HTTP 経由で収集されます。サービスが HTTPS をサポートしており、HTTPS 経由でメトリクスを収集する場合は、このスイッチをオンにします。

    Interval(s)

    Managed Service for Prometheus がメトリクスデータを収集する間隔です。デフォルト値は 30 秒です。

ステップ 3: Micrometer ダッシュボードデータの表示

  1. 左側のナビゲーションペインで、[プロビジョニング] をクリックします。[プロビジョニング] ページの [統合環境] タブで、対象の環境を選択します。対象の環境リストで、対象の環境の名前をクリックしてコンテナ環境の詳細ページに移動します。

  2. Cloud Monitor コンソールにログインします。ナビゲーションペインで、[プロビジョニング] をクリックします。[プロビジョニング] ページの [Integrated Environments] タブで対象の環境を選択します。環境リストで、対象環境の名前をクリックして、コンテナ環境の詳細ページに遷移します。

    Integrated Environments tab on the Provisioning page

  3. [コンポーネント管理] タブの [Addon Type] セクションで、Micrometer をクリックし、[Dashboards] をクリックして、すべてのダッシュボード名を表示します。

    ダッシュボードリストには、javajvmmicrometer のタグが付いた [JVM Micrometer] ダッシュボードが表示されます。

  4. 対象のダッシュボードの名前をクリックして、対応する Grafana ダッシュボードを表示します。

    Grafana ダッシュボードページには、[JVM Micrometer] モニタリングダッシュボードが表示されます。ページの上部には、[job][Instance] のドロップダウンフィルター、および [Restart Detection] スイッチがあります。[Quick Facts] セクションには [稼働時間][開始時刻] のメトリクスがあり、[I/O Overview] セクションには [Rate][Errors] のチャートがあります。対象のインスタンスを選択して、対応する JVM モニタリングデータを表示してください。

ステップ 4: Micrometer モニタリングアラートの構成

  1. [コンポーネント管理] タブの [Addon Type] セクションで、Micrometer をクリックし、[アラートルール] をクリックして、デフォルトで作成されたアラートルールを表示します。

    デフォルトのアラートルールには、[JVM CPU Usage Alert][JVM Memory Usage Alert][JVM Restart Count Alert][logback Log Error Count Alert]、および [MajorGC Duration Ratio Alert] が含まれます。これらはすべて重要度レベルが P2 で、実行中です。

  2. ビジネス要件に基づいてアラートルールを作成することもできます。 Prometheus の アラートルール の作成方法の詳細については、「Prometheus インスタンスのアラートルールを作成する」をご参照ください。