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 から特定のエンドポイントを除外するには、以下のディレクティブを使用します:
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
メトリックの表示
メトリクスを表示するには、以下の手順を実行します:
- Instana UI のサイドバーで、 インフラストラクチャを選択します。
- 特定の監視ホストをクリックします。
ホスト・ダッシュボードには、収集されたすべてのメトリクスと監視されたプロセスが表示されます。
エンドポイントと HTTP セッション
Instana Spring Boot センサーは、エンドポイントおよび HTTP セッションから以下のメトリクスを収集します:
構成データ
次の表は、Instana Spring Boot センサーが収集する設定データの一覧です:
| 構成 | 説明 |
|---|---|
| 名前 | Spring Boot アプリケーションの名前。 |
| アプリケーション・バージョン | Spring Boot アプリケーションのビルドバージョン。 |
| SpringBoot バージョン | Spring Boot フレームワークのバージョン。 |
| 状況 | Up や Down など、 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 ダッシュボードに、問題の種類と簡単な説明が記載されたエラー メッセージが表示されます。
Spring Boot Actuator が構成されていない
モニタリングの問題タイプ: springboot_actuator_not_configured
Spring Boot アクチュエーターを設定するには、 Spring Boot アクチュエーターの設定を参照してください。
JMX が有効になっていない
モニタリングの問題タイプ: springboot_jmx_not_enabled
JMXを有効にするには、 Spring Boot Actuatorの設定を参照してください。
spring.main.lazy-initialization プロパティが有効になっている場合は、 Spring Boot のバージョンを 2.4.12 以降に更新する必要があります。