Spring Boot Actuator 是一個用于監控和管理 Spring Boot 應用程序的模塊
在項目的 pom.xml
文件中,添加以下內容以引入 Spring Boot Actuator 依賴:
<!-- ...其他依賴... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
在 application.properties
或 application.yml
文件中,可以配置 Actuator 的相關屬性。例如,可以設置端點的上下文路徑、端口等。以下是一些常用的配置示例:
# 設置端點的上下文路徑
management.endpoints.web.base-path=/manage
# 設置端點的端口
management.server.port=8081
# 設置端點的安全認證(使用 Spring Security)
management.endpoint.health.show-details=always
management.endpoint.info.enabled=true
management.endpoint.shutdown.enabled=true
management.endpoint.loggers.enabled=true
management.endpoint.metrics.enabled=true
management.endpoint.prometheus.enabled=true
management.metrics.export.simple.enabled=true
Actuator 提供了多種端點,可以用于查看應用程序的運行狀態、健康狀況、指標等信息。以下是一些常用的端點:
/actuator/health
:查看應用程序的健康狀況。/actuator/info
:查看應用程序的基本信息。/actuator/metrics
:查看應用程序的各種指標。/actuator/loggers
:查看和修改應用程序的日志級別。/actuator/shutdown
:關閉應用程序(需要配置 Spring Security 以啟用此功能)。除了使用 HTTP 請求訪問端點外,還可以通過 Java API 來訪問這些信息。例如,可以使用 HealthIndicator
接口來獲取應用程序的健康狀況:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HealthCheckController {
@Autowired
private HealthIndicator healthIndicator;
@GetMapping("/check-health")
public Health checkHealth() {
return healthIndicator.health();
}
}
通過這種方式,可以在代碼中直接訪問 Actuator 提供的各種信息,從而實現更靈活的故障排查。