<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
这将向您的应用程序添加几个有用的终结点。其中之一是/health。当您启动应用程序并导航到/health终结点时,您将看到它已经返回了一些数据。
{
"status":"UP",
"diskSpace": {
"status":"UP",
"free":56443746,
"threshold":1345660
}
}
如何在春 Boot 健康中添加自定义健康检查?
3条答案
按热度按时间wvmv3b1j1#
添加一个自定义的健康检查很简单。只需创建一个新的Java类,从AbstractHealthIndicator扩展它,并实现doHealthCheck方法。该方法通过一些有用的方法传递一个构建器。如果你的健康状况良好,则调用builder.up(),如果不好,则调用builder.down()。你要做什么来检查健康状况完全取决于你自己。也许你想ping一些服务器或检查一些文件。
这足以激活新的运行状况检查(确保@ComponentScan位于您的应用程序上)。重新启动您的应用程序并将浏览器定位到/health终结点,您将看到新添加的运行状况检查。
zkure5ic2#
自Sping Boot 2.X以来
如@yuranos87所述,Sping Boot 2.X中的执行器概念已发生变化,但您仍然可以通过实现
HealthIndicator
或针对React式应用程序ReactiveHealthIndicator
轻松添加自定义运行状况检查:或
此外,您还可以使用
@Endpoint
或@EndpointWebExtension
添加或扩展任何终结点。此处的终结点包括info
、health
等。因此,您可以使用@Endpoint
添加自定义运行状况检查,但使用HealthIndicator
要容易得多。您可以在Spring Boot 文档中找到有关自定义运行状况检查和自定义终结点的详细信息。
不要忘记设置应用程序属性,否则您将看不到客户运行状况指标:
x3naxklr3#
Sping Boot 2.X显著改变了执行器。通过
@EndpointWebExtension
启用了一个新的、更好的机制来扩展现有端点。也就是说,健康端点的扩展有点棘手,因为它的一个扩展是由执行器本身提供的。如果不操纵bean初始化过程,你的应用程序将无法启动,因为它将看到两个扩展,并且不知道选择哪一个。一个更简单的方法是使用info来扩展它:
别忘了你也可以重新MapURL,在我的例子中,我更喜欢 /status 而不是 /health,并且不想在路径中使用 /actuator/:
我更喜欢 /info 的另一个原因是我没有得到这个嵌套结构,它是 /health 的默认结构: