Spring Boot 揭祕與實戰(九) 應用監控篇 - HTTP 應用監控

Spring Boot 提供運行時的應用監控和管理功能。本文,咱們經過 HTTP 實現對應用的監控和管理。javascript

博客地址:blog.720ui.com/java

快速開始

Spring Boot 監控核心是 spring-boot-starter-actuator 依賴,增長依賴後, Spring Boot 會默認配置一些通用的監控,好比 jvm 監控、類加載、健康監控等。git

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>複製代碼

若是,使用 HTTP 調用的方式,還須要 spring-boot-starter-web 依賴。github

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>複製代碼

監控和管理端點

以最新的 Spring Boot 的版本 1.4.3 爲準,列出目前支持的監控。web

HTTP方法 路徑 描述
GET /actuator 查看全部EndPoint的列表,須要加入 Spring HATEOAS 支持
GET /autoconfig 查看應用的自動配置的使用狀況
GET /beans 查看應用的全部Bean的信息
GET /configprops 查看應用的全部配置屬性
GET /dump 查看應用的線程狀態信息
GET /env 查看應用的全部環境信息
GET /flyway 查看已經有遷徙路線數據庫遷移
GET /health 查看應用健康指標
GET /info 查看應用信息
GET /liquibase 查看已經有liquibase數據庫遷移應用
GET /mappings 查看全部url映射
GET /metrics 查看應用基本指標
POST /shutdown 容許優雅關閉當前應用(默認狀況下不啓用)
GET /trace 查看基本的HTTP跟蹤信息
GET /docs 查看文檔,須要依賴 spring-boot-actuator-docs
GET /heapdump 返回一個gzip壓縮 hprof 堆轉儲文件
GET /jolokia 暴露JMX bean(當jolokia路徑)
GET /logfile 查看日誌文件的內容(若是logging.file或logging.path屬性已設置)。支持使用對HTTP範圍標頭到日誌文件的部分恢復內容。

health 應用健康指標

咱們能夠經過 http://localhost:8080/health , 統計系統的情況,默認裏面目前只有系統情況和磁盤情況。這些檢測器都經過 HealthIndicator 接口實現,下篇文章,我會講解到經過 HealthIndicator 接口實現自定義健康檢測。spring

info 查看應用信息

默認狀況下,只會返回一個空的 json 內容。咱們能夠在 application.properties 配置文件中經過 info 前綴來設置一些屬性。數據庫

info.author.realname=梁桂釗
info.author.nickname=LiangGzone複製代碼

咱們也能夠在 application.yml 配置文件中設置一些屬性。json

info.author:
 email: lianggzone@163.com
 blog: http://blog.720ui.com複製代碼

metrics 應用基本指標

咱們能夠經過 http://localhost:8080/metrics, 獲取當前應用的各種重要度量指標,好比:內存信息、線程信息、垃圾回收信息等。安全

咱們還能夠經過 /metrics/{name} 接口來更細粒度的獲取度量信息,好比咱們能夠經過訪問 /metrics/mem.free 來獲取當前可用內存數量。springboot

trace 基本的HTTP跟蹤信息

查看基本的 HTTP 跟蹤信息。默認狀況下,跟蹤信息的存儲採用 org.springframework.boot.actuate.trace.InMemoryTraceRepository 實現的內存方式,始終保留最近的 100 條請求記錄。

shutdown關閉當前應用

shutdown 端點默認是不啓用的,咱們能夠在 application.properties 中開啓。此外,shutdown 端點不支持 GET 請求,咱們須要經過 POST 方法訪問。

endpoints.shutdown.enabled=true複製代碼

定製端點

端點能夠在 Spring Boot 配置文件中進行定製。例如,上面,咱們開啓 shutdown 端點。

endpoints.shutdown.enabled=true複製代碼

端點的前綴是,endpoints + 「.」+ 端點名。

默認的端點訪問路徑是根目錄下,咱們能夠經過修改配置,進行定製。

management.context-path=/manage複製代碼

此時,咱們的訪問地址就變成: http://localhost:8080/manage/info

此外,默認監控的接口端口和業務的端口是一致的,咱們出於安全性考慮,能夠改變端點的訪問的端口。

management.port=9090複製代碼

咱們甚至能夠關閉 http 端點。

management.port=-1複製代碼

源代碼

相關示例完整代碼: springboot-action

(完)

更多精彩文章,盡在「服務端思惟」微信公衆號!

相關文章
相關標籤/搜索