spring-boot-actuator
Spring Boot Actuatorを用いた本番グレードの監視設定、ヘルスプローブ、セキュアな管理エンドポイント、およびJVMサービス全体のMicrometerメトリクス導入に関するパターンを提供します。Spring Bootアプリケーションの監視・ヘルスチェック・メトリクス収集を設定する際に使用してください。
description の原文を見る
Provides patterns to configure Spring Boot Actuator for production-grade monitoring, health probes, secured management endpoints, and Micrometer metrics across JVM services. Use when setting up monitoring, health checks, or metrics for Spring Boot applications.
SKILL.md 本文
Spring Boot Actuator スキル
概要
- Actuator エンドポイント、プローブ、Micrometer 統合を使用して、Spring Boot サービスに本番対応の可観測性を提供します。
- ヘルス、メトリクス、診断構成を標準化し、詳細なリファレンス資料は
references/に委譲します。 - セキュアな運用、SLO レポート、インシデント診断のプラットフォーム要件をサポートします。
使用時期
- トリガー:「actuator エンドポイントを有効にする」– 新規または既存の Spring Boot サービス向けに Actuator をブートストラップします。
- トリガー:「管理ポートをセキュアにする」– Spring Security ポリシーを適用して管理トラフィックを保護します。
- トリガー:「ヘルスプローブを設定する」– オーケストレーターのための readiness グループと liveness グループを定義します。
- トリガー:「メトリクスを prometheus にエクスポートする」– Micrometer レジストリを連携させ、メトリクス公開をチューニングします。
- トリガー:「actuator 起動をデバッグする」– エンドポイントが不足している、または遅い場合に条件評価と起動メトリクスを検査します。
クイックスタート
<!-- Maven -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
// Gradle
dependencies {
implementation "org.springframework.boot:spring-boot-starter-actuator"
}
依存関係を追加した後、エンドポイントが応答することを確認します:
curl http://localhost:8080/actuator/health
curl http://localhost:8080/actuator/info
手順
1. Actuator 依存関係を追加
ビルド設定に spring-boot-starter-actuator を含めます。
検証: サービスを再起動し、
/actuator/healthと/actuator/infoが200 OKで応答することを確認します。
2. 必須エンドポイントを公開
management.endpoints.web.exposure.includeを正確なリストに設定するか、内部デプロイメントの場合は"*"に設定します。- デフォルトの
/actuatorがルーティングと競合する場合、management.endpoints.web.base-path(例:/management)を調整します。 - 詳細なエンドポイント仕様は
references/endpoint-reference.mdを確認してください。
検証:
curl http://localhost:8080/actuatorは公開されているエンドポイントのリストを返します。
3. 管理トラフィックをセキュアにする
EndpointRequest.toAnyEndpoint()とロールベースのルールを使用して、分離されたSecurityFilterChainを適用します。management.server.portをファイアウォール制御またはサービスメッシュポリシーと組み合わせて、オペレーター専用アクセスを実現します。/actuator/health/**を公開アクセス可能にするのは必要な場合のみに留め、それ以外は認証を強制します。
検証: 保護されたエンドポイントへの認証なしリクエストは
401 Unauthorizedを返します。
4. ヘルスプローブを設定
management.endpoint.health.probes.enabled=trueを有効にして/health/livenessと/health/readinessを使用可能にします。management.endpoint.health.group.*でインジケーターをグループ化し、プラットフォームの期待値に合わせます。HealthIndicatorまたはReactiveHealthContributorを拡張してカスタムインジケーターを実装します。サンプル実装はreferences/examples.md#custom-health-indicatorを参照してください。
検証:
/actuator/health/readinessは本番環境への昇格前に、すべての必須コンポーネント付きでUPを返します。
5. メトリクスとトレースを公開
management.metrics.export.*で Micrometer エクスポーター(Prometheus、OTLP、Wavefront、StatsD)を有効にします。MeterRegistryCustomizerビーンを適用して、可観測性の相関関係のためのapplication、environment、ビジネスタグを追加します。- Spring Boot 3.2+ を使用する場合、
server.observation.*設定で HTTP リクエストメトリクスを表示します。
検証:
/actuator/prometheusをスクレイプし、必須メーター(http.server.requests、jvm.memory.used)が存在することを確認します。
6. 診断ツールを有効化
- インシデント対応時に
/actuator/startup(Spring Boot 3.5+)と/actuator/conditionsをオンにして、自動設定決定を検査します。 /actuator/httpexchangesを有効にする前にHttpExchangeRepository(例:InMemoryHttpExchangeRepository)を登録して、リクエスト監査を行います。- エンドポイントの動作と制限については
references/endpoint-reference.mdを参照してください。
検証:
/actuator/startupと/actuator/conditionsは有効な JSON ペイロードを返します。
例
基本 – ヘルスと info を安全に公開
management:
endpoints:
web:
exposure:
include: "health,info"
endpoint:
health:
show-details: never
中級 – カスタムインジケーター付きの readiness グループ
@Component
public class PaymentsGatewayHealth implements HealthIndicator {
private final PaymentsClient client;
public PaymentsGatewayHealth(PaymentsClient client) {
this.client = client;
}
@Override
public Health health() {
boolean reachable = client.ping();
return reachable ? Health.up().withDetail("latencyMs", client.latency()).build()
: Health.down().withDetail("error", "Gateway timeout").build();
}
}
management:
endpoint:
health:
probes:
enabled: true
group:
readiness:
include: "readinessState,db,paymentsGateway"
show-details: always
高度な例 – Prometheus エクスポート付きの専用管理ポート
management:
server:
port: 9091
ssl:
enabled: true
endpoints:
web:
exposure:
include: "health,info,metrics,prometheus"
base-path: "/management"
metrics:
export:
prometheus:
descriptions: true
step: 30s
endpoint:
health:
show-details: when-authorized
roles: "ENDPOINT_ADMIN"
@Configuration
public class ActuatorSecurityConfig {
@Bean
SecurityFilterChain actuatorChain(HttpSecurity http) throws Exception {
http.securityMatcher(EndpointRequest.toAnyEndpoint())
.authorizeHttpRequests(c -> c
.requestMatchers(EndpointRequest.to("health")).permitAll()
.anyRequest().hasRole("ENDPOINT_ADMIN"))
.httpBasic(Customizer.withDefaults());
return http.build();
}
}
より詳細なエンドツーエンドサンプルは references/examples.md で利用可能です。
ベストプラクティス
- SKILL.md は簡潔に保ち、コンテキスト消費を削減するため、詳細なドキュメントは
references/に依存します。 - 最小権限の原則を適用します:必要なエンドポイントのみを公開し、センシティブなエンドポイントを制限します。
- プロファイル固有の YAML を使用してイミュータブルな設定を適用し、環境を合わせます。
- actuator トラフィックを別途監視して、スクレイピングの悪用またはブルートフォース攻撃を検出します。
- CI/CD パイプラインで
curlプローブのスクリプト化によるリグレッションチェックを自動化します。
制約と警告
- 公開ネットワーク上では
/actuator/env、/actuator/configprops、/actuator/logfile、/actuator/heapdumpを公開しないようにします。 - 絶対に必要な場合を除き、イベントループスレッドをブロックしたり 250 ms を超える実行時間を持つカスタムヘルスインジケーターをシップしないでください。
- Actuator メトリクスエクスポーターが サポートされている Micrometer レジストリで実行されることを確認します。サポートされていないエクスポーターはカスタムレジストリビーンが必要です。
- Spring Boot 3.5.x の慣例との互換性を保持します。古いバージョンはプローブと observation 機能が不足している可能性があります。
- 本番環境で認証なしに actuator エンドポイントを公開しないでください。
- ヘルスインジケーターは、アプリケーションパフォーマンスに影響を与える可能性のあるコストの高い操作を実行しないようにしてください。
/actuator/beansと/actuator/mappingsは内部アプリケーション構造を明かすため、注意が必要です。
リファレンス資料
エンドポイントクイックリファレンス実装例公式ドキュメント抜粋Actuator を使用した監査Cloud Foundry 統合Actuator 機能を有効にするHTTP exchange 記録JMX 公開監視とメトリクスログ設定メトリクスエクスポーターMicrometer を使用した可観測性プロセスと監視トレーシング- スクリプトディレクトリ(
scripts/)は将来の自動化向けに予約済みです。現在はランタイム依存関係はありません。
検証チェックリスト
mvn spring-boot:runまたは./gradlew bootRunが/actuator(またはカスタム基本パス)の下で期待されるエンドポイントを公開することを確認します。/actuator/health/readinessが本番環境への昇格前に、すべての必須コンポーネント付きでUPを返すことを確認します。/actuator/metricsまたは/actuator/prometheusをスクレイプして、必須メーター(http.server.requests、jvm.memory.used)が存在することを確認します。- セキュリティスキャンを実行して、信頼されたネットワーク外からは意図したポートとエンドポイントのみに到達可能であることを検証します。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- giuseppe-trisciuoglio
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/giuseppe-trisciuoglio/developer-kit / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。