[英]@NewSpan and @ContinueSpan support in Spring Boot 3
我创建了一个演示应用程序,我想在其中查看如何在 Spring Boot 2 和 Spring Boot 3 中设置跟踪: https ://github.com/Compile-Time/demo-tracing-in-spring-boot-2-and- 3个
该演示对 Spring Boot 3 项目使用以下跟踪依赖项。
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
implementation 'io.zipkin.reporter2:zipkin-reporter-brave'
相关代码就是这个。
import io.micrometer.tracing.annotation.NewSpan;
import io.micrometer.tracing.annotation.SpanTag;
@Service
@RequiredArgsConstructor
public class NewSpanUserCreationService {
private final UserCreationService userCreationService;
@Transactional
@NewSpan("create new user and group (@NewSpan)")
public UserGroup create(
@SpanTag("user.creation.request") final UserCreationRequest creationRequest
) {
return userCreationService.create(creationRequest);
}
}
根据 Micrometer Tracing 存储库中的迁移指南,似乎只需要将 Spring Cloud Sleuth 包名称更改为 Micrometer Tracing 名称即可: https ://github.com/micrometer-metrics/tracing/wiki/Spring -Cloud-Sleuth-3.1-迁移指南#async-instrumentation
但是,在 Spring Boot 3 中演示 @NewSpan 和 @ContinueSpan 注释时,我没有看到任何新的子跨度或对现有跨度的修改。 这让我想知道是否甚至支持“旧的”Sleuth 注释。 因为 micrometer-tracing 文档没有提到 @NewSpan 和 @ContinueSpan 注释的存在: https ://micrometer.io/docs/tracing 。 此外,我没有在 Spring Boot 3 文档中找到任何暗示支持“旧”注释的提示。
但是,在千分尺跟踪存储库中存在注释: https ://github.com/micrometer-metrics/tracing/tree/main/micrometer-tracing/src/main/java/io/micrometer/tracing/annotation
所以理论上,有人可以提供一个使@NewSpan 和@ContinueSpan 注释起作用的实现。
这给我留下了以下假设:
如果有人能证实或否定我的部分或全部假设,我会很高兴。 有可能我在某处遗漏了什么。
我在以下存储库中搜索了@NewSpan 或@ContinueSpan 支持的任何提示:
我查看了以下文档中是否提到了@NewSpan 和@ContinueSpan:(我无法在此处提供链接,因为这是一个没有声誉的新帐户......)
我设法创建了两个解决方案来使旧注释起作用。 第一种是复制Sleuth项目代码并修改,另一种是手动实现。
总的来说,我鼓励任何人使用新的@Observed
注释,因为据我所知,旧注释不是 Spring Boot 3 的重点(基于 Spring Boot 3 文档中没有提及)。
然而,如果你很好奇或者有充分的理由重新实现旧的注解,你可以看看这两个分支:
请注意,上述实现并不完整:
@SpanName
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.