Spring Boot Actuator 的“httptrace”端点在 Spring Boot 2.2.0 中不再存在

Posted

技术标签:

【中文标题】Spring Boot Actuator 的“httptrace”端点在 Spring Boot 2.2.0 中不再存在【英文标题】:"httptrace" endpoint of Spring Boot Actuator doesn't exist anymore with Spring Boot 2.2.0 【发布时间】:2020-03-25 16:30:56 【问题描述】:

在 Spring Boot 2.2.0 中,“httptrace”Actuator 端点不再存在。如何恢复此功能?

【问题讨论】:

juplo.de/actuator-httptrace-does-not-work-with-spring-boot-2-2 【参考方案1】:

该功能在 Spring Boot 2.2.0 中默认为 removed。要修复它,请将此配置添加到 Spring 环境中:

management.endpoints.web.exposure.include: httptrace

并像这样提供HttpTraceRepository bean:

@Configuration
// @Profile("actuator-endpoints") /* if you want: register bean only if profile is set */
public class HttpTraceActuatorConfiguration 

    @Bean
    public HttpTraceRepository httpTraceRepository() 
        return new InMemoryHttpTraceRepository();
    


http://localhost:8080/actuator/httptrace 再次工作。

【讨论】:

在我的情况下,@Profile 注释是不必要的 - 删除它后它的工作!【参考方案2】:

您需要通过具有以下应用程序属性来启用 httptrace。默认情况下它是禁用的

management.trace.http.enabled: true
management.endpoints.web.exposure.include: httptrace

并且需要HttpTraceRepository bean。您可以使用您自己的自定义实现或InMemoryHttpTraceRepository

【讨论】:

嗨!不幸的是,这是不对的。至少对于 Spring Boot 2.2.0 及更高版本不是。请参阅发行说明 :)github.com/spring-projects/spring-boot/wiki/… 哪里不对,我用 2.2.2.RELEASE 测试过,我从文档docs.spring.io/spring-boot/docs/current/reference/html/…找到了信息 嗯......奇怪......根据官方 2.2.0 发行说明,必须提供一个 bean,这是我让它工作的唯一方法 (github.com/spring-projects/spring-boot/wiki/…) 这对我有用。感谢 ravthiru,phip1611 的误导性帖子评论... @FacundoLaxalde @ravthiru 我有这方面的更新。 management.endpoints.web.exposure.include: httptrace (or '*') 是绝对需要的,是的。但是根据发行说明(和我自己的测试)management.trace.http.enabled: true 不是必需的,尽管即使存在 HttpTraceRepository bean 也可以使用它来禁用此功能。对不起!

以上是关于Spring Boot Actuator 的“httptrace”端点在 Spring Boot 2.2.0 中不再存在的主要内容,如果未能解决你的问题,请参考以下文章

无法访问 Spring Boot Actuator“/actuator”端点

spring-boot-starter-actuator监控接口详解

spring-boot 监控 Actuator

spring boot actuator专题

spring boot 监控与管理(actuator)

Spring Boot Actuator [监控与管理]