1.Actuator簡介
SpringBoot大部分子產品都是用于開發業務功能或者連接配接外部資源的。除此之外,SpringBoot還提供了Actuator子產品來管理和監控應用,Actuator是一個用于暴露自身資訊的子產品,可以有效地減少監控系統在采集應用名額時的開發量。
Actuator提供了監控和管理端點以及一些常用的擴充和配置方式,具體如下表所示。
路徑(端點名) | 描述 | 鑒權 |
/health | 顯示應用監控名額 | false |
/beans | 檢視Bean及其關系清單 | false |
/info | 檢視應用資訊 | false |
/trace | 檢視基本追蹤資訊 | true |
/env | 檢視所有環境變量 | true |
/env/{name} | 檢視具體變量值 | true |
/mappings | 檢視所有URL映射 | true |
/autoconfig | 檢視目前應用的所有自動配置 | true |
/configprops | 檢視應用所有配置屬性 | true |
/shutdown | 關閉應用(預設關閉) | true |
/metrics | 檢視應用基本名額 | true |
/metrics/{name} | 檢視應用具體名額 | true |
/dump | 列印線程棧 | true |
2.引入依賴
建立一個SpringBoot工程,并在pom.xml檔案中添加內建Actuator所需要的dependency。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
3.添加配置
在application.properties檔案中添加如下配置資訊。
############################################################
#
# 應用監控配置
#
############################################################
### 指定通路監控方法的端口
management.server.port = 8080
### 開啟所有端點
management.endpoints.web.exposure.include = *
4.測試
啟動項目,然後在浏覽器中請求“http://localhost:8080/actuator”,可以查詢到如下圖所示的資訊。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5COxYTM3kTYhBjZ2M2MhZTNzYzX2ADM0IjM0IzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
點選端點路徑即可檢視端點詳情,如點選“http://localhost:8080/actuator/health”檢視應用的健康狀态,“UP”表示應用是健康狀态,測試結果如下圖所示。
5.其它配置詳解
### 設定beans端點的緩存生存時間
management.endpoint.beans.cache.time-to-live = 10s
### 将/actuator/health重新映射到/healthCheck
management.endpoints.web.path-mapping.health = healthCheck
### 更改基本路徑
management.endpoints.web.base-path = /
### 啟用shutdown端點
management.endpoint.shutdown.enabled = true
### 啟用info端點并禁用其它所有端點
management.endpoints.enabled-by-default = false
management.endpoints.info.enabled = true
### 檢視詳細的應用健康資訊
management.endpoints.health.show-detail = always
- management.endpoint.beans.cache.time-to-live:對于不帶任何參數的讀取操作,端點自動緩存對其的響應。要配置端點緩存響應時間,需使用cache.time-to-live屬性,如management.endpoint.beans.cache.time-to-live = 10s表示将beans端點緩存生存時間設定為10秒。
- management.endpoints.web.path-mapping.health:預設情況下,端點通過使用端點的ID在/actuactor路徑下的HTTP上公開,如beans端點暴露在/actuator/beans下。如果需要改變端點映射,需使用management.endpoints.web.path-mapping屬性。如management.endpoints.web.path-mapping.health = healthCheck表示将/actuator/health重新映射到/healthCheck。
- management.endpoints.web.base-path:更改基本路徑。
- management.endpoint.shutdown.enabled:如果需要配置單個端點的啟用,需使用management.endpoint.{id}.enabled屬性。如management.endpoint.shutdown.enabled = true表示啟動shutdown端點。
- management.endpoints.enabled-by-default:修改全局端口的預設配置。
- management.endpoints.health.show-detail:檢視詳細的應用健康資訊,值除了always之外,還有when-authorized和never,預設是never。