撲街,Spring boot admin 中的 httptrace 怎么沒了?
前言
近日,收到群友反饋 Spring boot admin 中的 httptrace(http跟蹤)沒了,筆者復(fù)查了一下果然是沒有了。
Spring boot admin 中的 http跟蹤 會展示最近服務(wù)請求的請求,并展示請求的火焰圖。如下圖:
排查
我在收到此問題時(shí)第一時(shí)間去查看了 Spring boot admin 的代碼,發(fā)現(xiàn) httptrace 功能是存在的。
然后我在 Spring boot github 搜索到了這條 issues:默認(rèn)情況下禁用 management.trace.http[1]。
我們可以看到在 Spring boot 2.0.0 M4 中去掉了默認(rèn)注入的 InMemoryHttpTraceRepository Bean。
題外,大家遇到一些版本變動的問題,也可以去 Spring-boot、Spring cloud Github 的 issues 中搜索。
結(jié)論
Spring boot 2.2.x 正式版開始,不再默認(rèn)開啟 InMemoryHttpTraceRepository,所以導(dǎo)致了這個(gè)問題。
對于此問題,官方建議采用第三方組件來進(jìn)行 httptrace 的收集,詳見:鼓勵使用第三方跟蹤和可觀察性解決方案,而不是實(shí)現(xiàn)自己的HttpTraceRepositroy[2]。
下圖為筆者采用 prometheus 收集并展示到 Grafana 的示例。
參考資料
默認(rèn)情況下禁用 management.trace.http: https://github.com/spring-projects/spring-boot/issues/15039
[2]鼓勵使用第三方跟蹤和可觀察性解決方案,而不是實(shí)現(xiàn)自己的HttpTraceRepositroy: https://github.com/spring-projects/spring-boot/issues/17047





