[英]Spring Boot Actuator - Java Endpoint
我們在我們的主要服務中使用的基礎設施模型中有一個示例執行器健康檢查(向包添加依賴項,@Import 類名等)。
我們知道 http 端點,通過添加后綴/actuator/health
,結果如下:
{
"status": "UP",
"components": {
"com......DbServiceValidator": {
"status": "UP"
},
"com......StorageServiceValidator": {
"status": "UP"
},
"diskSpace": {
"status": "UP",
"details": {
"total": 505370734592,
"free": 362675372032,
"threshold": 10485760,
"exists": true
}
},
"ping": {
"status": "UP"
}
}
}
但是我們希望以編程方式從 Java 代碼中獲取所有這些數據。 我做了一些研究,但一無所獲。
是否可以直接從代碼中獲取數據(/json)(無需休息等)?
Spring Boot 有一些自動配置的 bean,稱為HealthIndicators
,完整列表在這里。
應該可以像這樣使用它:
@Autowired
DiskSpaceHealthIndicator diskSpaceHealthIndicator;
void getDiskStatus() {
logger.info("Current Disk status {}", diskSpaceHealthIndicator.health().getStatus());
}
受到@MarkBramnik 的回答的啟發,我驗證了可以注入HealthEndpoint
並將結果打印為 JSON:
@Autowired
private HealthEndpoint healthEndpoint;
public void printHealthStatus() {
ObjectMapper mapper = new ObjectMapper();
log.info(mapper.writeValueAsString(healthEndpoint.health().getStatus()));
// output is: {"status":"UP"}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.