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”端点