Spring Boot のモニター
「 Instana 」の「 Spring Boot 」センサーを使用することで、 Spring Boot アプリケーションを監視できます。 「 Instana 」エージェントをインストールすると、「 Spring Boot 」センサーが自動的に展開およびインストールされます。 このトピックで説明されている手順に従って Spring Boot Actuatorを設定すると、 Instana のUIで Spring Boot アプリケーションに関連するメトリクスを確認できるようになります。
サポート情報
Spring Boot センサーが現在の環境と互換性があるかどうかを確認するには、以下のサポート情報セクションをご確認ください:
サポート対象のオペレーティング・システム
Spring Boot センサーの対応OSは、各ホストエージェントの要件と一致しています。これについては、各ホストエージェントの「対応 OS 」セクション(例: Linux )で確認できます。
対応バージョンとサポート方針
以下の表は、最新のサポート対象バージョンとサポート方針を示しています:
| テクノロジー | サポート・ポリシー | 最新バージョン | サポートされる最新バージョン |
|---|---|---|---|
| Spring Boot | 45 日間 | 4.1.0 | 4.0.6 |
サポートポリシーに関する詳細については、 「センサーのサポート戦略」 を参照してください。
トレース機能のサポート
この技術において、 Instana はトレース機能をサポートしています。 詳細については、 「計測用フレームワークとライブラリ」 を参照してください。
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 アクチュエーターは、実行中の Spring Boot アプリケーションの運用エンドポイントを生成し、公開します。
ステップ 2: 「 Java Management Extensions 」を有効にする ( JMX )
Spring Boot、 2.2.x 以降では、次のプロパティを `.conf` ファイル application.properties に設定して、 JMX を有効にします
spring.jmx.enabled=true
JMX を有効にすると、 Spring Boot アプリケーションのデータやリソースがマネージド・ビーン(MBean)として公開されます。
ステップ 3: 「 Spring Boot 」管理 MBean を公開する
ファイル application.properties 内で以下の設定によりエンドポイントが無効化されている場合、センサーは Spring Boot アプリケーションからメトリクスを収集するためにMBeansに依存しているため、 Spring Boot 管理用MBeansを公開する必要があります:
management.endpoints.enabled-by-default=false
MBean を公開するには、ファイル application.properties 内で以下のエンドポイントを有効にしてください:
management.endpoint.info.enabled=true
management.endpoint.health.enabled=true
management.endpoint.metrics.enabled=true
management.endpoint.env.enabled=true
Instana Spring Bootorg.springframework.boot:type=Endpoint,name=Metrics管理MBeanからメトリクスを取得します。 セキュリティ保護されたアクチュエータエンドポイントについては、認証や認証情報の設定を行う必要はありません。
Spring Boot 3.x については、ファイル application.properties 内に以下のディレクティブが記述されていることを確認してください:
management.endpoints.jmx.exposure.include=env,health,info,metrics
ステップ 4: HTTP 経由でエンドポイントを公開する
Spring Boot 2以降では、 Spring Boot Actuatorが Micrometer の依存関係管理と自動設定を提供します。 Spring Boot のバージョンに応じて、 JVM ダッシュボードではさまざまな Micrometer のメトリクスが利用可能です。
HTTP から特定のエンドポイントを除外するには、次のディレクティブを使用します:
management.endpoints.web.exposure.exclude=health,info
HTTP からすべてのエンドポイントを除外するには、次のディレクティブを使用します:
management.endpoints.web.exposure.exclude=*
ステップ 5: 環境変数の値をテキストで表示する
Instana のUIにアプリケーションの設定プロパティを表示するには、まずファイル application.properties にさらに変更を加える必要があります。 それ以外の場合、これらのプロパティーは、機密値が原因で ****** として表示されます。 詳細については、 「機密値のサニタイズ」 を参照してください。
値を常に平文で表示するには、 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 は Spring Bootbuild-info.propertiesアプリケーションの名前をファイルから取得します。 このファイルは、例えば次のようにして生成できます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 」プラグインのドキュメントを参照してください。
オプション:health-interval パラメータを設定する
デフォルトで、Instana は管理 MBean org.springframework.boot:type=Endpoint,name=Health を照会することにより、10 分ごとに Spring Boot アプリの正常性を照会します。
目的の health-interval パラメータを設定するには、秒単位で値を設定してください:
com.instana.plugin.springboot:
health-interval: 30
オプション:ポーリングレートの設定
次の例に示すように、agent configuration.yaml ファイル poll_rate 内のパラメータを使用して、 Instana が Spring Boot からデータやメトリクスを収集するためにポーリングを行う頻度を設定できます
com.instana.plugin.springboot:
poll_rate: 1 # values are in seconds. Default value is 1 second.
メトリックの表示
メトリックを表示するには、以下のステップを実行します。
- Instana のUIのサイドバーで、 「インフラストラクチャ」 を選択します。
- 特定のモニター対象ホストをクリックします。
収集されたすべてのメトリックとモニター対象プロセスを含むホスト・ダッシュボードを表示できます。
エンドポイントと HTTP セッション
Instana Spring Boot このセンサーは、エンドポイントおよび HTTP セッションから以下のメトリクスを収集します:
構成データ
次の表は、 Instana の Spring Boot センサーによって収集される設定データの一覧です:
| 構成 | 説明 |
|---|---|
| 名前 | Spring Boot アプリケーションの名前。 |
| アプリケーション・バージョン | Spring Boot アプリケーションのビルド・バージョン。 |
| SpringBoot バージョン | Spring Boot フレームワークのバージョンです。 |
| 状況 | Spring Boot アプリケーションのステータス(例:Up orなどDown)。 |
| ポート | 「 Spring Boot 」アプリケーションの HTTP 版。 |
| HTTP セッション限度 | Spring Boot アプリケーションの HTTP セッション数の上限。 |
| アプリケーション構成 | Spring Boot アプリケーション構成情報 (構成パスおよびプロパティーを含む)。 |
パフォーマンス・メトリック
次の表は、 Instana の Spring Boot センサーによって収集されるパフォーマンス指標の一覧です:
| メトリック | 説明 | 粒度 |
|---|---|---|
| エンドポイント要求または応答の明細 | 各レスポンスステータスコード( 1xx、 2xx、 3xx、 4xx、または 5xx )に対する1秒あたりのリクエスト数 | 1 秒 |
| HTTP セッション数 | アクティブな HTTP セッション数 | 1 秒 |
データ・ソース
Instana Spring Boot センサーは、データソースから以下の監視データを収集します:
構成データ
次の表は、データソースから収集される設定データの一覧です:
| 名前 | 説明 |
|---|---|
| プール名 | プール名HikariCP 。 |
| 接続タイムアウト | 接続タイムアウトHikariCP 。 |
パフォーマンス・メトリック
以下のパフォーマンス指標がデータソースから収集されます:
Java データベース接続( 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 Actuator を構成するには、 Spring Boot Actuator の構成を参照してください。
JMX が有効になっていない
監視対象の種類: springboot_jmx_not_enabled
JMX を有効にするには、 「 Spring Boot Actuator の設定」 を参照してください。
spring.main.lazy-initialization プロパティが有効になっている場合、 Spring Boot のバージョンを 2.4.12 以降に更新する必要があります。