如何强制二人组 Spring 云侦探 - Spring MVC/Spring 休息以处理在控制器的处理程序方法参数上设置的 @SpanTag 注释

How to force the duo Spring cloud sleuth - Spring MVC/Spring Rest to handle @SpanTag annotation set on controller's handler methods' parameters

我得到了一个 Spring 启动应用程序集,其中包含 Spring REST 和 Spring 云侦探。我正在尝试根据带有 @SpanTag 注释的控制器方法参数设置自定义标签,但没有成功

这是一个示例控制器:

@RestController
@RequestMapping("/api/auth")
class ExampleController() {

    @PostMapping("/create")
    fun createToken(
            @SpanTag(key="username",expression = "username") 
            @RequestBody 
            authTokenRequest: Request){
//Some code here
    }
}

旁边有一个 zipkin 运行 用于检索跟踪和跨度。

当我在 /api/auth/create 上发起请求时,我可以看到 Trace 在 zipkin 实例中弹出。如果我有 subspan,它们也会显示。默认标签在根跨度(http.pathmvc.controller.class 等)上也可见,但没有名为 username.

的标签

所以我的问题是,有没有办法强制 Spring Cloud Sleuth(在此配置中)确认 @SpanTag 注释?

In documentation@SpanTag 仅与方法结合使用,注释为 @NewSpan@ContinueSpan。 (明确地写在某个地方会很好,但隐含地没有其他意义;)

请尝试:

@ContinueSpan(log = "createToken") //or a log of your choice
@PostMapping("/create")
fun createToken(@SpanTag ...