Spring Boot 的Actuator提供了甚多生產級的特性,比如監控和度量Spring Boot應用程序。
揭秘Actuator端點
Actuator提供了13個端點:
Actuator的各個端點.png
要啟用Actuator的端點,需在項目里引入依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
上表中各個端點可以分為三大類:配置端點、度量端點和其他端點。
- 查看配置明細
a.獲取Bean的裝配報告
要了解應用程序中Spring的上下文情況,最重要的端點就是/beans。發起GET請求后,就可以所有運行的Bean條目。
b.詳解自動配置
/beans端點產生的報告能告訴你所有的Bean,而/autoconfig端點能告訴你為什么會有這個Bean,或者為什么有這個Bean。
c.查看配置屬性
/env端點會生成應用程序可用的所有環境屬性的列表,無論這些屬性是否用到
d.生成端點到控制器的映射
/mappings端點能夠以列表的形式羅列出應用程序發布的全部端點
- 運行時度量
a.查看應用程序的度量值
運行中的應用程序有諸多的計數器和度量器,/metrics端點提供了這些東西的快照
b.追蹤Web請求
/trace端點能報告Web請求的詳細信息,包括請求方法、路徑、時間戳以及請求和響應的頭信息
c.導出線程活動
/dump端點會生成當前線程活動的快照
d.監控應用程序的健康情況
如果你想知道自己的應用程序是否在運行,可以直接訪問/health端點。在最簡單的情況下,會返回一個最簡單的JSON,如下:
{
"status": "UP"
}
返回這個就表示應用程序正在進行中。
- 關閉應用程序
假設你要關閉運行中的應用程序,Actuator的/shutdown端點就用上了。但這個請求是POST,一般來說返回結果應該是:
{
"message": "This endpoint is disabled"
}
原因是,你并沒有啟用該端點。你需要在application.yml中聲明:
endpoints:
shutdown:
enabled: true
這樣就啟用了該端點。但你要確保,并非所有人都可以關閉應用程序,這時你應該將/shutdown保護起來。
- 獲取應用信息
Spring Boot 還有一個/info的端點。/info端點能展示你所希望發布的應用信息。默認請求該端點只會是:
{}
可以在application.yml里配置:
info:
contactEmail: xxx@xxx.com
再次訪問該端點,就會得到:
{
"contactEmail":"xxx@xxx.com"
}