我的一个服务/执行器/健康endpoint花费了更多时间(大约9秒)。我正在使用以下依赖项,如何调试?
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
使用的Spring引导版本:2.0.3.RELEASE
谢谢,哈里
除了马克的精彩回答:
作为在调用 /health
终结点时同步运行所有运行状况检查的替代方法(这只会随着您添加更多运行状况检查而导致执行时间越来越长),您可以使用库Spring启动异步运行状况指示器(对于Spring启动)使 HealthIndicator
异步运行
除了使 /health
endpoint立即返回(如在单独的线程上计算的返回运行状况
)之外,它还包括每个异步 health()
方法执行的执行时间作为附加详细信息,这极大地有助于确定哪个基础服务在生产系统上响应缓慢。
免责声明:我编写此库是为了帮助解决现有运行状况指示器
系统的多个限制,包括此限制
根据Mark的回答,在application . properties/application . yml中设置该属性
management.endpoint.health.show-details=always
将有助于确定哪些组件构成健康检查,因为GET /actuator/health将产生更多详细信息
基本上,运行状况
终结点的实现方式是,它包含实现接口 HealthIndicator
的所有Spring Bean 的列表。
每个运行状况指示器负责提供有关一个子系统的运行状况信息(此类子系统的示例包括:磁盘、postgres、mongo 等),Spring启动附带一些预定义的运行状况指示器。
因此,当调用运行状况
终结点时,它会循环访问此列表并获取有关每个子系统的信息,然后构造答案。
因此,您可以在相关的健康指标中放置一个断点(假设您知道检查了哪些子系统),看看会发生什么。
如果您正在寻找HTTP切入点-调用超文本传输协议时调用的代码://
我想到的另一种方法是禁用“可疑”的健康检查,并通过消除找到缓慢的检查。
例如,如果您有一个弹性搜索并希望禁用它,请在
应用程序.properties
中使用:
management.health.elasticsearch.enabled = false
我正在我的项目中使用模块,该模块公开了要监视的RESTendpointURL 默认情况下,仅公开 和 终结点。 根据我的使用案例,我正在通过< code > application . properties 文件自定义endpoint。 我想了解,Spring启动究竟在哪里为和创建实际的endpoint,以及它如何通过HTTP公开它们?
我试图在我的spring boot应用程序中公开/actuator/healthendpoint,但我的日志表明没有公开任何endpoint。我看过一些文档,其中指出健康endpoint是默认启用的唯一endpoint,但它为我返回404。 从应用程序启动的日志: 访问 /actuator 还显示未公开任何endpoint: 我看了其他几个类似的帖子,但是没有一个补丁对我有效。我在@RestCon
我有一个带有Spring Security微服务的Spring Boot 2,我已使用米计/Spring Actuator配置了该微服务。当我在antMatcher("/驱动器/**")endpoint上permitAll()时,一切都很好。我能够通过正确配置的Prometheus yaml文件检索Prometheus指标。 但是,我的微服务不在防火墙后面,因此对世界开放。我只希望普罗米修斯能够访
在我的Spring Boot应用程序(2.0.0.M7)中。我设置的属性 然而,当我击中 我得到404。 解决办法是什么?
我有一个spring boot rest api项目--我无法使spring boot执行器/健康endpoint工作。当我尝试转到localhost:8080/health时,它就会出现一个“白标签错误页面”。我尝试向我的application.properties添加各种属性,但似乎都不起作用--我不需要任何自定义映射或对执行器endpoint的身份验证。下面是我的建筑。格拉德尔-有什么建议吗
在我的项目中,我不想使用。我的application.java有、和注释。 我在pom.xml中添加了Spring Boot执行器依赖项。但是,当我尝试访问时,得到的是404。我相信我需要指定一些配置类作为导入注释的一部分。我需要帮助弄清楚配置是什么。