扑街,Spring boot admin 中的 httptrace 怎么没了?
前言
近日,收到群友反馈 Spring boot admin
中的 httptrace(http跟踪)没了,笔者复查了一下果然是没有了。
Spring boot admin 中的 http跟踪 会展示最近服务请求的请求,并展示请求的火焰图。如下图:
排查
我在收到此问题时第一时间去查看了 Spring boot admin
的代码,发现 httptrace
功能是存在的。
然后我在 Spring boot
github 搜索到了这条 issues
:默认情况下禁用 management.trace.http[1]。
我们可以看到在 Spring boot 2.0.0 M4
中去掉了默认注入的 InMemoryHttpTraceRepository
Bean。
题外,大家遇到一些版本变动的问题,也可以去 Spring-boot
、Spring cloud Github
的 issues
中搜索。
结论
Spring boot 2.2.x 正式版开始,不再默认开启 InMemoryHttpTraceRepository
,所以导致了这个问题。
对于此问题,官方建议采用第三方组件来进行 httptrace
的收集,详见:鼓励使用第三方跟踪和可观察性解决方案,而不是实现自己的HttpTraceRepositroy[2]。
下图为笔者采用 prometheus 收集并展示到 Grafana 的示例。
参考资料
默认情况下禁用 management.trace.http: https://github.com/spring-projects/spring-boot/issues/15039
[2]鼓励使用第三方跟踪和可观察性解决方案,而不是实现自己的HttpTraceRepositroy: https://github.com/spring-projects/spring-boot/issues/17047