Spring Boot のモニター

Instana Spring Boot センサーを使用して、 Spring Boot アプリケーションを監視できます。 Spring Boot センサーは、Instana エージェントのインストール後、自動的に展開され、インストールされます。 このトピックで説明するように Spring Boot アクチュエーターを構成した後、 Spring Boot アプリケーションに関連するメトリクスを Instana UI で表示できます。

サポート情報

Spring Boot センサーが現在のセットアップと互換性があることを確認するには、以下のサポート情報セクションをチェックしてください:

サポート対象のオペレーティング・システム

Spring Boot センサーのサポートするオペレーティングシステムは、ホストエージェントの要件と一致しており、各ホストエージェントのサポートするオペレーティングシステムセクション( サポートするオペレーティングシステム Linux など)で確認することができます。

対応バージョンとサポートポリシー

以下の表は、最新のサポートバージョンとサポートポリシーを示しています:

テクノロジー サポート・ポリシー 最新技術バージョン サポートされる最新バージョン
Spring Boot 45 日間 3.5.8 3.5.7

サポート方針の詳細については、 センサーのサポート戦略を参照してください。

Spring Boot モニタリングの設定

Spring Boot モニタリングを設定するには、以下の手順を実行する:

ステップ 1: Spring Boot アクチュエーターの設定

Spring Boot アクチュエーターを設定するには、 pom.xml ファイルに以下の依存関係を追加します:

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

Spring Boot Actuatorは、実行中の Spring Boot アプリケーションの運用エンドポイントを生成し、公開する。

ステップ2:Java管理拡張機能(JMX)を有効にする

Spring Boot 2.2.x 以降の場合は、 application.properties ファイルで以下のプロパティを設定し、JMX を有効にする:

spring.jmx.enabled=true
 

JMXを有効にすると、 Spring Boot アプリケーションのデータとリソースがマネージドBean(MBeans)として公開されます。

ステップ 3: Spring Boot 管理MBeansの公開

application.properties ファイルで以下のコンフィギュレーション設定を使用してエンドポイントを無効にしている場合は、 Spring Boot 管理 MBeans を公開する必要があります。これは、センサーが Spring Boot アプリケーションからメトリクスを収集するために MBeans に依存するためです:

management.endpoints.enabled-by-default=false
 

MBeansを公開するには、 application.properties ファイルで以下のエンドポイントを有効にする:

management.endpoint.info.enabled=true
management.endpoint.health.enabled=true
management.endpoint.metrics.enabled=true
management.endpoint.env.enabled=true
 

Instana は Spring Boot 管理 MBean org.springframework.boot:type=Endpoint,name=Metrics からメトリクスをクエリします。 セキュリティで保護されたアクチュエータ・エンドポイントの認証やクレデンシャルを設定する必要はありません。

Spring Boot 3.x の場合、 application.properties ファイルに以下のディレクティブがあることを確認する:

management.endpoints.jmx.exposure.include=env,health,info,metrics
 

ステップ4:エンドポイントの公開 HTTP

Spring Boot 2 以降の場合、 Spring Boot Actuator は、 マイクロメーターの依存関係管理と自動設定を提供します。 Spring Boot のバージョンによって、 JVMダッシュボードで利用できる マイクロメーター・メトリクスが異なります。

注: エンドポイントに機密情報が含まれている可能性があるため、 HTTP。 デフォルトでは、ヘルス・エンドポイントのみが公開される。 詳細については、「 エンドポイントの公開 」を参照してください。

HTTP から特定のエンドポイントを除外するには、以下のディレクティブを使用します:

management.endpoints.web.exposure.exclude=health,info
 

HTTP からすべてのエンドポイントを除外するには、以下のディレクティブを使用します:

management.endpoints.web.exposure.exclude=*
 

ステップ5:環境値をテキストで表示する

アプリケーションの設定プロパティを Instana UI に表示する前に、 application.properties ファイルにさらに変更を加える必要があります。 そうでない場合、これらのプロパティは微妙な値のため、 ****** として表示される。 詳細については、 Sanitize Sensitive Valuesを参照してください。

値を常にクリアテキストで表示するには、 application.properties

management.endpoint.env.show-values=ALWAYS
 

ステップ6: Spring Boot アプリの名前

Instana は以下のソースから Spring Boot インスタンスの名前を抽出する:

  • spring.application.name プロパティを使用します:このプロパティがアプリケーション構成で定義されている場合、その値がアプリケーション名として使用されます。 Spring Boot 3の場合、 Spring Boot アプリケーション名を指定するには、 application.properties ファイルの spring.application.name プロパティを以下のように設定する:

    spring.application.name=<Your_Application_Name>
     
  • build-info.properties ファイルから取得します: spring.application.name が定義されていない場合、Instana は build-info.properties ファイルから Spring Boot アプリケーションの名前を取得します。 このファイルは、例えば spring-boot-maven-plugin で生成できる:

    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <executable>true</executable>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>build-info</goal>
          </goals>
          <configuration>
            <additionalProperties>
              <name>${project.artifactId}</name>
              <version>${project.version}</version>
            </additionalProperties>
          </configuration>
        </execution>
      </executions>
    </plugin>
     

    Actuator との統合の詳細については、 Spring Boot Maven Plugin Documentation を参照してください。

ステップ7:ヘルスインターバルパラメータの設定(オプション)

デフォルトで、Instana は管理 MBean org.springframework.boot:type=Endpoint,name=Health を照会することにより、10 分ごとに Spring Boot アプリの正常性を照会します。

希望の health-interval パラメータを設定するには、値を秒単位で設定する:

com.instana.plugin.springboot:
  health-interval: 30
 
注: ヘルスチェックの実装によっては、新たなダウンストリームコールが発生する可能性がある。 ヘルスチェックに失敗した場合は、根本的な原因を示す警告メッセージが表示されます。

メトリックの表示

メトリクスを表示するには、以下の手順を実行します:

  1. Instana UI のサイドバーで、 インフラストラクチャを選択します。
  2. 特定の監視ホストをクリックします。

ホスト・ダッシュボードには、収集されたすべてのメトリクスと監視されたプロセスが表示されます。

エンドポイントと HTTP セッション

Instana Spring Boot センサーは、エンドポイントおよび HTTP セッションから以下のメトリクスを収集します:

構成データ

次の表は、Instana Spring Boot センサーが収集する設定データの一覧です:

構成 説明
名前 Spring Boot アプリケーションの名前。
アプリケーション・バージョン Spring Boot アプリケーションのビルドバージョン。
SpringBoot バージョン Spring Boot フレームワークのバージョン。
状況 UpDown など、 Spring Boot アプリケーションのステータス。
ポート Spring Boot アプリケーションの HTTP ポート。
HTTP セッション限度 HTTP Spring Boot アプリケーションの最大セッション数。
アプリケーション構成 Spring Boot 設定パスとプロパティを含むアプリケーション設定情報。

パフォーマンス・メトリック

次の表は、Instana Spring Boot センサーによって収集されるパフォーマンスメトリクスの一覧です:

メトリック 説明 粒度
エンドポイントのリクエストまたはレスポンスの内訳 各レスポンスステータスコード ( 1xx, 2xx, 3xx, 4xx, または 5xx ) の 1 秒あたりのリクエスト数 1 秒
HTTP セッション数 アクティブな HTTP セッション数 1 秒

データ・ソース

Instana Spring Boot センサーは、データソースから以下のモニタリングデータを収集します:

構成データ

次の表は、データソースから収集される構成データの一覧である:

名前 説明
プール名 HikariCP のプール名。
接続タイムアウト HikariCP の接続タイムアウト。

パフォーマンス・メトリック

データソースから収集されるパフォーマンス指標は以下の通り:

Java Database Connectivity ( JDBC ) データソース

次の表は、データソースから収集される JDBC メトリクスの一覧です:

メトリック 表示名 説明 粒度
active アクティブ アクティブ接続数。 1 秒
idle アイドル アイドル状態の接続数。 1 秒
max 最大 最大接続数。 1 秒
min 最小 最小接続数。 1 秒
HikariCP データソース

次の表は、データソースから収集される HikariCP メトリクスの一覧です:

メトリック 表示名 説明 粒度
acquire 買収 接続獲得数。 1 秒
active アクティブ アクティブ接続数。 1 秒
creation 作成 接続の作成数。 1 秒
idle アイドル アイドル状態の接続数。 1 秒
max 最大 最大接続数。 1 秒
min 最小 最小接続数。 1 秒
pending 保留中のスレッド 接続待ちのスレッド数。 1 秒
timeout タイムアウト 接続タイムアウトの回数。 1 秒
total 合計 接続の総数。 1 秒
usage 使用法 プールに戻されたコネクション数。 1 秒

正常性シグニチャー

各センサーについて、健康シグネチャのキュレーションされた知識ベースは、入ってくるメトリクスに対して継続的に評価され、ユーザーの影響に依存する問題やインシデントを提起するために使用される。

組み込みイベントは、 エンティティの正常性シグネチャの失敗に基づいて問題またはインシデントをトリガーし、 カスタム イベントは、選択したエンティティの個々のメトリックのしきい値に基づいて問題またはインシデントをトリガーします。

Spring Boot センサーの内蔵イベントの詳細については、 内蔵イベントリファレンスを参照。

トラブルシューティング

これらのトラブルシューティングエントリーを使用して、 Spring Boot アプリケーションの監視に関連する問題を解決してください。 Instana UI の Spring Boot ダッシュボードに、問題の種類と簡単な説明が記載されたエラー メッセージが表示されます。

JMX が有効になっていない

モニタリングの問題タイプ: springboot_jmx_not_enabled

JMXを有効にするには、 Spring Boot Actuatorの設定を参照してください。

注: spring.main.lazy-initialization プロパティが有効になっている場合は、 Spring Boot のバージョンを 2.4.12 以降に更新する必要があります。