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


文章目錄

  1. 1. 快速開始
  2. 2. 監控和管理端點3. 定制端點
    1. 2.1. health 應用健康指標
    2. 2.2. info 查看應用信息
    3. 2.3. metrics 應用基本指標
    4. 2.4. trace 基本的HTTP跟蹤信息
    5. 2.5. shutdown關閉當前應用
  3. 4. 源代碼

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

快速開始

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

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. </dependency>

如果,使用 HTTP 調用的方式,還需要 spring-boot-starter-web 依賴。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>

監控和管理端點

以最新的 Spring Boot 的版本 1.4.3 為准,列出目前支持的監控。

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 接口實現自定義健康檢測。

info 查看應用信息

默認情況下,只會返回一個空的 json 內容。我們可以在 application.properties 配置文件中通過 info 前綴來設置一些屬性。

  1. info.author.realname=梁桂釗
  2. info.author.nickname=LiangGzone

我們也可以在 application.yml 配置文件中設置一些屬性。

  1. info.author:
  2. email: lianggzone@163.com
  3. blog: http://blog.720ui.com

metrics 應用基本指標

我們可以通過 http://localhost:8080/metrics, 獲取當前應用的各類重要度量指標,比如:內存信息、線程信息、垃圾回收信息等。

我們還可以通過 /metrics/{name} 接口來更細粒度的獲取度量信息,比如我們可以通過訪問 /metrics/mem.free 來獲取當前可用內存數量。

trace 基本的HTTP跟蹤信息

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

shutdown關閉當前應用

shutdown 端點默認是不啟用的,我們可以在 application.properties 中開啟。此外,shutdown 端點不支持 GET 請求,我們需要通過 POST 方法訪問。

  1. endpoints.shutdown.enabled=true

定制端點

端點可以在 Spring Boot 配置文件中進行定制。例如,上面,我們開啟 shutdown 端點。

  1. endpoints.shutdown.enabled=true

端點的前綴是,endpoints + “.”+ 端點名。

默認的端點訪問路徑是根目錄下,我們可以通過修改配置,進行定制。

  1. management.context-path=/manage

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

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

  1. management.port=9090

我們甚至可以關閉 http 端點。

  1. management.port=-1

源代碼

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

(完)

 

微信公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM