ソースコードリポジトリ: github.com/learn-spring-boot-2
開発の効率を向上させるためのフレームワークとしてSpringBootは、そのようなSpringBootアクチュエータ監視ツールなど、多くの追加機能と統合され、本番環境の監視および管理ツールとしてすることができます。開発者は、HTTPまたはJMXの方法を使用することができ、監査、操作やその他の指標の状態の本番環境を収集します。
Spring Bootアクチュエータ入門
// Gradle
implementation 'org.springframework.boot:spring-boot-starter-actuator'
メイブン
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
Spring Bootアクチュエータ、アクチュエータエンドポイント
アクチュエータのエンドポイントを使用すると、RESTful API インターフェイスを介してアプリケーションを監視し、対話することができます。ビルトインエンドポイントはアプリケーションのステータスに関する基本的な情報を提供し、カスタムエンドポイントは実行中に特定のメトリックの監視をカスタマイズすることを可能にします。
各エンドポイントはHTTPリモートアクセスを許可するように設定することができ、使用可能に設定されると、エンドポイントはURLにマッピングされます。
デフォルトでは、エンドポイントは/actuator/{Id}にアクセスするためにGETを使用し、組み込みエンドポイントのIdと説明は以下のとおりです:
| auditevents | 現在のアプリケーションの監査イベント情報 |
| beans | アプリケーション内のすべてのSpring Beanとその関係を表示します。 |
| caches | 利用可能なキャッシュ情報 cacheManagers |
| conditions | 発効条件の自動設定、発効の有無、発効しない理由 |
| configprops | すべての設定プロパティを表示 |
| env | すべての環境プロパティを取得 |
| health | アプリケーションステータス情報の表示 |
| httptrace | HTTPリクエストトレース情報の表示 |
| info | 任意のアプリケーション情報を表示 |
| loggers | アプリケーションでのロガーの設定の表示および変更 |
| metrics | 現在のアプリケーションの「メトリクス」情報を表示します。 |
| mappings | すべてのパスURL、つまり@RequestMappingでアノテーションされたURLを表示します。 |
| scheduledtasks | アプリケーションのスケジュールされたタスクを表示 |
| sessions | Spring Sessionからユーザーセッションの取得と削除を可能にします。 |
| shutdown | アプリケーションを正しく終了させる方法 |
| スレッドダンプ | スレッドダンプの実行 |
Spring Bootアクチュエータ
application.propertiesファイルの一般的なエンドポイント設定を以下に示します:
# 利用可能なすべての組み込みエンドポイントを公開する
management.endpoints.web.exposure.include=*
# リモートシャットダウンアプリケーションを実行する
management.endpoint.shutdown.enabled=true
# 利用可能な組み込みエンドポイントの一部を、カンマ区切りでエンドポイントIDとともに公開する
# management.endpoints.web.exposure.include=info,health,beans,env
# エンドポイントは公開されず、エンドポイントIDはカンマで区切られる。
# management.endpoints.web.exposure.exclude=info,health,beans,env
# ベースパス /actuator/{Id}
# management.endpoints.web.base-path=/actuator
# 許可されるHTTPリクエストメソッド
# management.endpoints.web.cors.allowed-methods=GET,POST
# クロスドメインを許可する
# management.endpoints.web.cors.allowed-origins=https://.com
組み込みエンドポイントの使用
ビルトインエンドポイントの使い方は比較的簡単で、例えばプロジェクトを実行して/actuator/{Id}にアクセスするだけで、全てのSpring Beansが表示されます:
アクセスすると、以下のようなリターンスタイルを見ることができます。
に POST すると、アプリケーションがシャットダウンします。
{
"message": "Shutting down, bye..."
}
Spring Bootアクチュエータ
新規 MyEndpoint.java
@Configuration
// Endpoint エンドポイントIDを指定する
@Endpoint(id = "my-endpoint")
public class MyEndpoint {
@ReadOperation
public Map<String, Object> endpoint() {
Map<String, Object> map = new HashMap<>(2);
// 監視したい情報をマップに書き込み、それを
map.put("status", "成功");
map.put("message", "これはカスタムエンドポイントである");
return map;
}
}
management.endpoints.web.exposure.include=*が設定されていない場合は、以下のようにカスタム・エンドポイントを有効にしてください:
# カスタムエンドポイントを有効にするには、以下の設定にmy-endpointを追加する。
management.endpoints.web.exposure.include=my-endpoint
: SpringBootアクチュエータの公式ドキュメントとAPIの説明




