Spring Boot Actuator端點詳解
Spring Boot Actuator提供了生產上經常用到的功能(如健康檢查,審計,指標收集,HTTP跟蹤等),幫助我們監控和管理Spring Boot應用程式。這些功能都可以通過JMX或HTTP端點訪問。
通過引入相關的依賴,即可監控我們的應用程式,收集指標、瞭解流量或資料庫的狀態變得很簡單。該庫的主要好處是我們可以獲得生產級工具,而無需自己實際實現這些功能。與大多數Spring模組一樣,我們可以通過多種方式輕鬆配置或擴充套件它。
Actuator還可以與外部應用監控系統整合,如Prometheus,Graphite,DataDog,Influx,Wavefront,New Relic等等。 這些系統為您提供出色的儀表板,圖形,分析和警報,以幫助我們在一個統一介面監控和管理應用服務。
本文將會介紹Spring Boot 1.x Actuator和Spring Boot 2.x Actuator,重點介紹最新的2.x版本的Actuator,包括其中的端點、配置管理以及擴充套件和自定義端點。
快速開始
引入如下的依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
Spring Boot 1.x Actuator
在1.x中,Actuator遵循讀寫模型,這意味著我們可以從中讀取資訊或寫入資訊。我們可以檢索指標或我們的應用程式的健康狀況,當然我們也可以優雅地終止我們的應用程式或更改我們的日誌配置。Actuator通過Spring MVC暴露其HTTP端點。
端點
當引入的Actuator的版本為1.x時,啟動應用服務,可以控制檯輸出如下的端點資訊:
我們介紹一下常用的endpoints:
- /health:顯示應用程式執行狀況資訊(通過未經身份驗證的連線訪問時的簡單“狀態”或經過身份驗證時的完整訊息詳細資訊),它預設不敏感
- /info:顯示任意應用程式資訊,預設情況下不敏感
- /metrics:顯示當前應用程式的“指標”資訊,它預設也很敏感
- /trace:顯示跟蹤資訊(預設情況下是最後幾個HTTP請求)
有些端點預設並不會被開啟,如/shutdown。
配置端點
我們可以自定義每個端點的屬性,按照如下的格式:
endpoints.[endpoint name].[property to customize]
可以自定義的屬性有如下三個:
- id,暴露的http端點地址
- enabled,是否開啟
- sensitive,當為true時,需要認證之後才會通過http獲取到敏感資訊
我們在配置檔案中增加如下的配置,將會定製/beans端點。
endpoints.beans.id=springbeans endpoints.beans.sensitive=false endpoints.beans.enabled=true