0

我已将 sleuth 集成到我的应用程序网关及其背后的服务中。Stackdriver (GKE) 中的跟踪看起来不错,但根跨度始终命名为“/”。例如:

例如

第二个跨度也是由网关创建的,并且具有更好的名称。

如何在我的网关服务中配置 sleuth 以使用不同的命名或修复导致两个跨度的任何原因?

编辑1

我使用 spring-gateway、sleuth 和 gcp 创建了一个最小项目,并编写了一个 LoggingReporter 来打印所有报告的跨度,同时让 GCP 自动配置工作。

StackdriverHttpClientParser名称跨度基于请求 uri。第二个跨度由 TraceWebFilter 基于具有完整 uri 的请求创建。第一个跨度是由HttpClientBeanPostProcessor基于 uri "/" 创建的。

我认为这不是 gcp 问题。这可能是spring-gateway的问题。有趣的是,首先创建了 TraceWebFilter 跨度,但 PostProcessor 仍然是父级。

EDIT2:我在 spring sleuth https://github.com/spring-cloud/spring-cloud-sleuth/issues/1535中创建了一个问题

4

1 回答 1

1

我同意 Marcin 的评论,问题可能出在 Stackdriver 上,您可以通过在您的环境(离线)中运行跟踪来验证这一点,并确保x-cloud-trace-context: TRACE_ID/SPAN_ID格式正确,正如我所看到的那样这里提到了三种方法。

如果通过离线运行跟踪结果成功而不更改任何内容,则问题出在堆栈驱动程序上。

于 2020-01-15T23:21:23.020 回答