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範圍標頭到日誌文件的部分恢復內容。 |
咱們能夠經過 http://localhost:8080/health , 統計系統的情況,默認裏面目前只有系統情況和磁盤情況。這些檢測器都經過 HealthIndicator 接口實現,下篇文章,我會講解到經過 HealthIndicator 接口實現自定義健康檢測。spring
默認狀況下,只會返回一個空的 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複製代碼
咱們能夠經過 http://localhost:8080/metrics, 獲取當前應用的各種重要度量指標,好比:內存信息、線程信息、垃圾回收信息等。安全
咱們還能夠經過 /metrics/{name} 接口來更細粒度的獲取度量信息,好比咱們能夠經過訪問 /metrics/mem.free 來獲取當前可用內存數量。springboot
查看基本的 HTTP 跟蹤信息。默認狀況下,跟蹤信息的存儲採用 org.springframework.boot.actuate.trace.InMemoryTraceRepository 實現的內存方式,始終保留最近的 100 條請求記錄。
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
(完)
更多精彩文章,盡在「服務端思惟」微信公衆號!