SpringBoot 2运行状况端点JSON格式已更改

时间:2019-04-15 18:50:26

标签: java spring-boot spring-boot-actuator

我们最近在一个应用程序中将Spring-Boot版本升级到2.1.2。 当我点击以下URL时,我注意到JSON格式发生了变化: http://localhost:xxxx/health

更改后的结构为: { 健康:{ 状态:“ UP” } }

以前是: { 状态:“ UP” }

我的问题是; 1.为什么要对其进行修改? 2.是否有任何配置可以保持以前的结构?

1 个答案:

答案 0 :(得分:5)

随着Spring Boot 2的发布,对Actuator进行了重新设计,并添加了新的令人兴奋的端点。

/actuator/health端点用于检查正在运行的应用程序的运行状况或状态。监视软件通常会执行此操作,以提醒我们正在运行的实例出现故障或由于其他原因而变得不正常。例如。数据库的连接问题,磁盘空间不足……

http://localhost:8080/actuator/health

{
status: "UP"
}

Monitoring and Management over HTTP

  

如果您正在开发Web应用程序,则Spring Boot Actuator会自动配置所有启用的端点以通过HTTP公开。默认约定是使用带有/ actuator前缀的终结点的ID作为URL路径。 例如,健康状态显示为/ actuator / health。提示:Spring MVC,Spring WebFlux和Jersey本身支持执行器。

Actuator Security

  

出于安全目的,默认情况下禁用/ health和/ info以外的所有执行器。 management.endpoints.web.exposure.include属性可用于启用执行器。

     

如果Spring Security位于类路径上,并且不存在其他WebSecurityConfigurerAdapter,则除/ health和/ info以外的所有执行器均由Spring Boot自动配置保护。如果定义了自定义WebSecurityConfigurerAdapter,则Spring Boot的自动配置将退出,您将完全控制执行器访问规则。

Endpoints

  

执行器端点使您可以监视应用程序并与之交互。 Spring Boot包含许多内置端点,您可以添加自己的端点。例如,运行状况端点提供基本的应用程序运行状况信息。

     

每个端点都可以启用或禁用。这控制了是否创建了端点以及它的bean在应用程序上下文中是否存在。为了可以远程访问,端点还必须通过JMX或HTTP公开。大多数应用程序选择HTTP,其中终结点的ID和/ actuator的前缀映射到URL。 例如,默认情况下,运行状况终结点映射到/ actuator / health。

Actuator JSON

  

Spring Boot 2.0改进了从许多端点返回的JSON有效负载。

     

许多终结点现在都具有JSON,可以更准确地反映基础数据。 例如,/ actuator / conditions端点(在Spring Boot 1.5中为/ autoconfig)现在具有顶级上下文键,可以按ApplicationContext对结果进行分组。

8. Health (health)

  

要检索应用程序的运行状况,请向/ actuator / health发出GET请求,如以下基于curl的示例所示:

$ curl 'http://localhost:8080/actuator/health' -i -X GET

有用信息:Baeldung