Spring Boot アクチュエーター エンドポイントが明らかに: アプリケーションを簡単に監視
1. Spring Boot Actuator エンドポイントの概要
1.1 Actuator エンドポイントとは
Spring Boot Actuator は、Spring Boot アプリケーションの監視と管理に使用されるサブプロジェクトです。アプリケーションのステータス、動作ステータス、動作インジケーターを表示するために使用できる一連の組み込みエンドポイント (エンドポイント) を提供します。アクチュエータ エンドポイントは、HTTP、JMX、またはその他の形式で外部システムに公開できるため、運用および保守担当者がアプリケーションを監視、診断、管理することが容易になります。
1.2 エンドポイントの役割と機能
Actuator エンドポイントは主に次の機能を実装するために使用されます:
- データベース接続、キャッシュ、メッセージ キューなどを含むアプリケーション プログラムの健全性チェックを提供します。
- メモリ使用量、GC ステータス、スレッド ステータスなどのアプリケーション メトリック データを収集します。
- 環境変数、システム プロパティ、構成ファイル内のプロパティなど、アプリケーションの構成情報を表示します。
- ログを管理するログの表示と動的変更を含むアプリケーションのレベル
- アプリケーションの Spring Bean 情報やアプリケーションのメタデータなどを取得します。
- アプリケーションのシャットダウン機能などを提供します。
1.3 Actuator エンドポイントのデフォルト構成
Spring Boot Actuator は、一連のアクチュエーター エンドポイントを提供します。デフォルトでは組み込みエンドポイントがあり、開発環境では直接アクセスできますが、運用環境では、エンドポイントの権限制御と公開ポリシーを構成する必要がある場合があります。アクチュエーター エンドポイントは、application.properties または application.yml ファイルを通じて構成できます。たとえば、
management.endpoints.web.exposure.include を構成することで、どのエンドポイントを外部アクセスに公開するかを制御したり、management.endpoints.web.base-path を通じてエンドポイントの URL パスを変更したりできます。
2. 組み込みエンドポイントの詳細な説明
Spring Boot Actuator は、アプリケーションのさまざまな側面を表示および管理するための多くの組み込みエンドポイントを提供します。以下は、一般的に使用されるエンドポイントの詳細です。
2.1 /actuator/health
このエンドポイントは、アプリケーションの正常性状態を表示するために使用されます。データベース接続、キャッシュ、メッセージキューなどのさまざまなコンポーネントのステータスをチェックします。返されるステータスには、UP(正常)、DOWN(異常)、OUT_OF_SERVICE(メンテナンス中)などが含まれます。
2.2 /actuator/info
このエンドポイントは、バージョン番号、ビルド時間など、アプリケーションの基本情報を表示するために使用されます。この情報は通常、アプリケーションの構成ファイルまたはビルド システムから取得されます。
2.3 /actuator/metrics
このエンドポイントは、アプリケーションのメトリック データを表示するために使用されます。メモリ使用量、GC、スレッドステータスなどに関するデータを収集します。特定のメトリクスの詳細は、パラメータを追加することで表示できます。例:
/actuator/metrics/jvm.memory.used。
2.4 /actuator/beans
このエンドポイントは、すべてのメトリクスを表示するために使用されます。春の豆。 Bean の名前、タイプ、スコープ、所属する ApplicationContext などの情報が表示されます。
2.5 /actuator/env
このエンドポイントは、環境変数、システム プロパティ、構成ファイル内のプロパティなど、アプリケーションの環境情報を表示するために使用されます。 。 /actuator/env/server.port などのパラメータを追加すると、特定のプロパティの値を表示できます。
2.6 /actuator/loggers
このエンドポイントは、アプリケーションのログの表示と管理に使用されます。現在のアプリケーション内のすべてのロガーの名前とログ レベルが表示されます。 POST リクエストを送信することで、ロガーのログ レベルを動的に変更することもできます。
2.7 /actuator/shutdown
このエンドポイントは、アプリケーションをシャットダウンするために使用されます。有効にするには、
management.endpoint.shutdown.enabled を true に設定する必要があります。運用環境では、通常、悪用を防ぐためにこのエンドポイントのアクセス許可を制御する必要があります。
2.8 その他のエンドポイント
上記の一般的なエンドポイントに加えて、Spring Boot Actuator は次のような他のエンドポイントも提供します。 在实际项目中,我们可能需要对 Spring Boot Actuator 的端点进行一些定制,以满足特定的需求。本节将介绍如何对端点进行配置和定制。 访问端点可能涉及敏感信息,我们需要对端点进行权限控制。可以通过集成 Spring Security 或自定义拦截器实现访问权限控制。例如,仅允许具有 ADMIN 角色的用户访问 /actuator/shutdown 端点。 可以通过management.endpoints.web.exposure.include 和 management.endpoints.web.exposure.exclude 配置项来控制哪些端点应该被暴露。默认情况下,仅暴露 /actuator/health 和 /actuator/info 端点。例如,暴露所有端点: 或者仅暴露某些特定端点: 默认情况下,所有端点的路径都是以 /actuator 开头的。我们可以通过 默认情况下,某些端点的响应内容可能不包含我们关心的所有信息。可以通过实现自定义的 EndpointFilter 来定制端点的响应内容。例如,可以为 /actuator/health 端点添加自定义的健康指标。或者通过继承并重写原有端点的方法来实现定制。 通过这些定制方法,我们可以使 Spring Boot Actuator 更好地适应实际项目需求。 在某些情况下,内置的端点无法满足我们的需求,因此我们需要创建自定义端点。本节将介绍自定义端点的实现方式、应用场景举例以及如何注册和配置自定义端点。 要创建自定义端点,需要实现org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint 接口或 org.springframework.boot.actuate.endpoint.annotation.Endpoint 接口。其中,RestControllerEndpoint 接口允许我们创建基于 Web 的端点,而 Endpoint 接口则适用于其他类型的端点。 创建自定义端点后,需要将其注册到 Spring Boot Actuator。我们可以通过将自定义端点作为 Bean 注册到 Spring 上下文来实现。例如: 在上面的代码中,我们首先使用@Endpoint注解来指定端点的ID(即cache-status)。然后,我们定义了一个getCacheStatus()方法,使用@ReadOperation注解来表示这是一个读操作。此方法应返回一个表示缓存状态的对象(例如,CacheStatus类)。 接下来,我们需要定义CacheStatus类: 接下来,我们需要为自定义端点配置访问权限、暴露策略等。这可以通过在 application.properties 文件中添加相关配置来实现。例如: 这将使得我们的自定义端点 /actuator/cache-status 能够被访问。 在本节中,我们将介绍如何利用Spring Boot Actuator端点数据进行监控与可视化,从而更好地了解应用程序的运行状况。 Java Management Extensions(JMX)是Java平台的一种技术,允许对Java应用程序进行管理和监控。Spring Boot Actuator默认支持将端点数据暴露到JMX。要使用JMX监控端点,请确保在应用程序的application.properties或application.yml文件中启用了JMX: 然后,您可以使用JMX客户端(如Java Mission Control、VisualVM等)连接到应用程序的JMX端口,查看和操作暴露的端点数据。 Prometheus是一个流行的开源监控系统,与Grafana这个数据可视化工具结合使用,可以为Spring Boot Actuator端点数据提供强大的可视化监控功能。 首先,需要在Spring Boot应用程序中集成Prometheus。添加相应的依赖并配置application.properties或application.yml文件,以启用Prometheus端点: 接下来,需要配置Prometheus来抓取Spring Boot应用程序的数据。在Prometheus的配置文件中(通常是prometheus.yml),添加以下内容: 最后,在Grafana中添加Prometheus数据源,并创建仪表板来展示和分析Spring Boot Actuator端点的数据。如下图所示: Spring Boot Actuator还可以与其他监控工具集成,例如Datadog、InfluxDB、New Relic等。要集成这些工具,通常需要在应用程序中添加相应的依赖并进行一些配置。具体的集成步骤和配置方式请参考官方文档或相关教程。 在本文中,我们详细介绍了Spring Boot Actuator端点的相关内容,下面对全文进行概括总结。 随着微服务和容器化技术的发展,对于应用程序的监控和管理需求将越来越复杂。Spring Boot Actuator的端点功能将继续完善,为开发者提供更加强大的监控工具。同时,我们期待更多的第三方监控工具与Actuator集成,帮助开发者更好地管理和优化其应用程序。 以上がSpring Boot アクチュエーター エンドポイントが明らかに: アプリケーションを簡単に監視の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。三、端点配置与定制
3.1 控制端点访问权限
3.2 端点暴露策略
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.include=health,info,metrics,env
3.3 修改端点的 URL 路径
management.endpoints.web.base-path 配置项修改这个前缀。例如,将其更改为 /admin:management.endpoints.web.base-path=/admin
3.4 端点响应内容定制
四、创建自定义端点
4.1 自定义端点的实现方式
4.2 注册和配置自定义端点
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.stereotype.Component;
@Component
@Endpoint(id = "cache-status")
public class CacheStatusEndpoint {
@ReadOperation
public CacheStatus getCacheStatus() {
// 在这里实现获取缓存状态的逻辑
// 例如,从缓存管理器中获取相关信息
CacheStatus cacheStatus = new CacheStatus();
cacheStatus.setCacheSize(100);
cacheStatus.setHitCount(200);
cacheStatus.setMissCount(50);
return cacheStatus;
}
}
public class CacheStatus {
private int cacheSize;
private int hitCount;
private int missCount;
// 省略 getter 和 setter 方法
}
management.endpoints.web.exposure.include=health,info,cache-status
五、端点数据监控与可视化
5.1 使用JMX监控端点
management.endpoints.jmx.exposure.include=*
5.2 使用Prometheus和Grafana进行可视化监控
management.endpoints.web.exposure.include=*
management.metrics.export.prometheus.enabled=true
scrape_configs:
- job_name: 'spring-boot-actuator'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8080'] # 将此处替换为Spring Boot应用程序的实际地址
5.3 集成其他监控工具
六、总结
6.1 Spring Boot Actuator端点的优势
6.2 注意事项和最佳实践
6.3 对未来发展的展望

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









1. SpringBootActuator エンドポイントの概要 1.1 Actuator エンドポイントとは SpringBootActuator は、SpringBoot アプリケーションを監視および管理するために使用されるサブプロジェクトです。アプリケーションのステータス、動作ステータス、動作インジケーターを表示するために使用できる一連の組み込みエンドポイント (エンドポイント) を提供します。アクチュエータ エンドポイントは、HTTP、JMX、またはその他の形式で外部システムに公開できるため、運用および保守担当者がアプリケーションを監視、診断、管理することが容易になります。 1.2 エンドポイントの役割と機能 Actuator エンドポイントは主に次の機能を実装するために使用されます: データベース接続、キャッシュ、

昔、コンピュータサイエンスを専攻していた新卒の頃、求人サイトでたくさんの求人情報を見ていたのですが、研究開発エンジニア、運用保守エンジニア、テストエンジニア…というまぶしい技術職に戸惑いました。 、私の専門コースはまあまあで、技術的なビジョンを持っていなかったことは言うまでもなく、どの技術的な方向性を追求するかについて明確なアイデアがありませんでした。先輩に「運用保守をやれ。運用保守は毎日コードを書く必要はない。Liunx が遊べるようになればいい!開発よりずっと楽だよ!」と言われるまでは、私はその道を選びました。信じられない...私はこの業界に10年以上従事しており、多くの苦しみ、多くの責任を負い、サーバーを停止させ、部門の解雇を経験しました。今、誰かが開発より運用と保守の方が簡単だと言うなら、 、それならそうします

インターネットの急速な発展に伴い、エンタープライズレベルのアプリケーションの複雑さは日に日に増しています。この状況に対応して、マイクロサービス アーキテクチャが登場しました。そのモジュール性、独立した展開、および高い拡張性により、今日ではエンタープライズレベルのアプリケーション開発の最初の選択肢となっています。 Spring Cloud は優れたマイクロサービス アーキテクチャとして、実際のアプリケーションで大きな利点を示しています。この記事では、SpringCloud マイクロサービス アーキテクチャのデプロイと運用保守について紹介します。 1. SpringCloud マイクロサービス アーキテクチャ SpringCloud をデプロイする

連休前に、PG China コミュニティと協力して、D-SMART を使用して PG データベースを運用および保守する方法についてオンライン ライブ ブロードキャストを実施したところ、金融業界のクライアントの 1 人が私の紹介を聞いて電話をかけてきました。チャットするために。彼らはデータベース Xinchuang を選択し、いくつかの国内データベースを試しましたが、最終的に TDSQL を選択する予定です。そのとき少し驚いたのは、2020年から国内データベースを選定していたのですが、TDSQLを使った後の初期体験があまり良くなかったようです。その後のやり取りの結果、彼らは TDSQL の分散データベースを使い始めたばかりで、研究開発の要件が高すぎることがわかったので、全員が TDSQL の集中型 MYSQL インスタンスを選択したことを知りました。 。データベース クラウド全体

インタビューや提出を通じて、運用とメンテナンスの分野のベテランが招待され、高度な合意を形成し、業界がより良く前進することを促進することを目的として、深い洞察を提供し、意見をぶつけ合うことができます。今回は、Tuyou Games の運営保守ディレクター、Zou Yi 氏をお招きします。鄒氏は、よく冗談めかして自分のことを世界トップ 500 万企業の運営保守代表者と呼んでいますが、心の中では次のように感じていることがわかります。中小企業の運用保守構築の考え方は大企業の考え方とは異なります。違いがあります。今日はいくつか質問があり、鄒氏に中小企業向けの研究と運用を統合するまでの道のりについて語ってもらいます。規模の企業。堅実でハイレベルな「運用・保守フォーラム」の第6回が始まります!質問プレビュー Tuyou はゲーム会社ですが、ゲームの運営とメンテナンスの特徴は何だと思いますか?直面している運用上の最大の課題は何ですか?これらの課題をどのように解決しましたか?ゲームの運営・保守担当者

可観測性という用語はエンジニアリング分野に由来し、近年ソフトウェア開発分野でますます普及しています。簡単に言えば、可観測性とは、外部出力に基づいてシステムの内部状態を理解する能力です。 IBM は可観測性を次のように定義しています。 一般に、可観測性とは、複雑なシステムの内部状態または状態が、その外部出力の知識に基づいて理解できる程度を指します。システムの観察可能性が高ければ高いほど、追加のテストやコーディングを必要とせずに、パフォーマンス問題の根本原因を特定するプロセスがより速く、より正確になります。クラウド コンピューティングでは、可観測性は、アプリケーション システムをより効果的に監視、トラブルシューティング、デバッグするために、分散アプリケーション システムとその運用をサポートするインフラストラクチャからのデータを集約、関連付け、分析するソフトウェア ツールと実践を指し、それによって顧客エクスペリエンスを実現します。最適化とサービスレベル契約

運用保守のために Golang を学ばない理由: 1. Golang は主に、高パフォーマンスおよび同時パフォーマンス要件を持つアプリケーションの開発に使用されます; 2. 運用保守エンジニアが一般的に使用するツールとスクリプト言語は、すでに満たしていますほとんどの管理およびメンテナンス要件; 3. golang の学習には、一定のプログラミングの基礎と経験が必要; 4. 運用およびメンテナンス エンジニアの主な目標は、アプリケーションの開発ではなく、システムの安定性と高可用性を確保することです。

この記事は Uber エンジニア Gergely Orosz による記事です。元のアドレスは: https://blog.pragmaticengineer.com/operating-a-high-scale-distributed-system/ ここ数年、私は大規模な分散システム: Uber の支払いシステム。この期間中、私は分散アーキテクチャの概念について多くを学び、高負荷かつ高可用性のシステムを実行する際の課題を直接目の当たりにしました (システムは開発された時点では完成には程遠いものであり、それをオンラインで実行する際の課題は実際に存在します)。さらに大きな)。システムを構築すること自体は興味深い取り組みです。計画システムが 10x/100 を処理する方法
