spring sleuth行李传播未得到传播/工作
我们目前使用的是sleuth 2.2.3.RELEASE,无法看到http头中传递的字段userId没有传播。下面是我们的代码spring sleuth行李传播未得到传播/工作,spring,spring-cloud-sleuth,Spring,Spring Cloud Sleuth,我们目前使用的是sleuth 2.2.3.RELEASE,无法看到http头中传递的字段userId没有传播。下面是我们的代码 BaggageField REQUEST_ID = BaggageField.create("x-vcap-request-id"); BaggageField USER_ID = BaggageField.create("userId"); Tracing.newBuilder().propagatio
BaggageField REQUEST_ID = BaggageField.create("x-vcap-request-id");
BaggageField USER_ID = BaggageField.create("userId");
Tracing.newBuilder().propagationFactory(
BaggagePropagation.newFactoryBuilder(B3Propagation.FACTORY)
.add(SingleBaggageField.remote(REQUEST_ID))
.add(SingleBaggageField.newBuilder(USER_ID).addKeyName("baggage-user-id").build())
.build());
我们怀疑YML文件中的某些问题。我们尝试了以下所有选项,但都不起作用
#1 baggage-keys: baggage-user-id
#2 propagation-keys: baggage-user-id
#3 baggage-keys: user-id
在logback中:
%X{行李用户id:-}
我们正在传递http头中的用户ID。请不要创建自己的跟踪实例。您可以创建最终位于跟踪bean内部的bean 这里有一个使用最新3.x api的示例
spring:
sleuth:
baggage:
correlation-fields:
- TEST-COMMUNICATION-TYPE
remote-fields:
- TEST-COMMUNICATION-TYPE
旧的、不推荐使用的api
spring:
application:
name: service1
sleuth:
baggage-keys:
- baggage
- key
log.slf4j.whitelisted-mdc-keys:
- key
如何取回行李
log.info("Service2: Baggage for [key] is [" + BaggageField.getByName("key") + "]");
我们如何放置行李
String baggageKey = "key";
String baggageValue = "foo";
BaggageField baggageField = BaggageField.create(baggageKey);
baggageField.updateValue(baggageValue);
请不要创建自己的跟踪实例。您可以创建最终位于跟踪bean内部的bean 这里有一个使用最新3.x api的示例
spring:
sleuth:
baggage:
correlation-fields:
- TEST-COMMUNICATION-TYPE
remote-fields:
- TEST-COMMUNICATION-TYPE
旧的、不推荐使用的api
spring:
application:
name: service1
sleuth:
baggage-keys:
- baggage
- key
log.slf4j.whitelisted-mdc-keys:
- key
如何取回行李
log.info("Service2: Baggage for [key] is [" + BaggageField.getByName("key") + "]");
我们如何放置行李
String baggageKey = "key";
String baggageValue = "foo";
BaggageField baggageField = BaggageField.create(baggageKey);
baggageField.updateValue(baggageValue);
谢谢它在两个rest组件Spring boot之间工作。所以,拦截器中不需要代码。但是,为什么这些字段没有传播到Kafkala最稳定的版本:2.x,我们没有使用任何spring云kafka流,而是使用简单的spring kafka。我们需要更改任何配置吗?这可能是卡夫卡工具的问题。你能提出一个问题,最好是一个样本,复制他的问题?正是这个答案提供了解决方案后,几个小时的摆弄。谢谢。它在两个rest组件Spring boot之间工作。所以,拦截器中不需要代码。但是,为什么这些字段没有传播到Kafkala最稳定的版本:2.x,我们没有使用任何spring云kafka流,而是使用简单的spring kafka。我们需要更改任何配置吗?这可能是卡夫卡工具的问题。你能提出一个问题,最好是一个复制问题的样本吗?正是这个答案为我提供了几个小时的摆弄后的解决方案。