天天看點

26.內建監控元件Actuator

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”,可以查詢到如下圖所示的資訊。

26.內建監控元件Actuator

點選端點路徑即可檢視端點詳情,如點選“http://localhost:8080/actuator/health”檢視應用的健康狀态,“UP”表示應用是健康狀态,測試結果如下圖所示。

26.內建監控元件Actuator

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。