当前位置: 首页 > 知识库问答 >
问题:

如何强制侦探不发送单个b3头

夹谷承安
2023-03-14

我在Spring Boot应用程序中使用sleuth进行日志跟踪,我的应用程序也通过活动MQ发送一些消息,但当我看到消息属性时,它会使用单个b3头发送跟踪。我如何配置sleuth以分离标题?

共有2个答案

顾梓
2023-03-14

如果您希望spring.sleuth.baggage.xxx应用程序属性工作,那么您需要将您的传播工厂包装在行李传播工厂中:

@Bean
public BaggagePropagation.FactoryBuilder baggagePropagationFactoryBuilder() {
    Propagation.Factory b3Factory = B3Propagation.newFactoryBuilder()
            .injectFormat(Span.Kind.PRODUCER, B3Propagation.Format.MULTI)
            .injectFormat(Span.Kind.CONSUMER, B3Propagation.Format.MULTI)
            .build();
    return BaggagePropagation.newFactoryBuilder(b3Factory);
}

请参阅TraceBaggageConfiguration上的javadoc。baggagePropagationFactoryBuilder()

孔海超
2023-03-14

默认值不仅是更好的性能,而且不违反JMS头名称规则。我会建议你找出为什么不能使用b3单。

如果必须使用多个标题,可以执行以下操作:

java prettyprint-override">@Bean Propagation.Factory customPropagationFactory() {
  return B3Propagation.newFactoryBuilder()
      .injectFormat(Span.Kind.PRODUCER, Format.MULTI)
      .injectFormat(Span.Kind.CONSUMER, Format.MULTI)
      .build();
}
 类似资料:
  • 我想删除X-Span-Export:“true”,“X-B3-SpanId”:“40bcdc1c4fcdb9c0”,“X-B3-TraceId”:“40bcdc1c4fcdb9c0”} 形成我的日志。 我已经添加了下面的配置application.yml但没有帮助。 一个pplication.yml spring:应用程序:名称:应用程序名称配置文件:dev sleuth:采样器:概率:1.0日志

  • 我最近从spring cloud greenwich.sr2迁移到hoxton.sr9,并且正在使用spring Sleuth跟踪传入的对我的spring boot应用程序的REST调用,这些调用触发了最终到达RabbitMQ的消息。 显然,spring Sleuth在这两个版本之间的一个关键区别是,现在只发送一个头,格式为,最后两个组件是可选的,而不是为trace、span和parentSpan

  • 我的一些微服务使用log4j2作为记录器。Spring cloud Sleuth支持logback。在这个场景中,我如何使用Sleuth来获得分布式跟踪。我明白用log4j2使用sleuth,我必须实现某些类。我试过了,但没有运气。请帮忙

  • 我有一个API的正面,我使用邮递员发送一个单一的数字8。 我想用邮递员这样寄 但是现在前面说他们不能在json中发送一个没有键值的单词,我不想创建一个对象只使用一次绑定,我该怎么做呢?

  • 当我在使用log4j2进行日志记录的Spring Boot项目中添加侦探依赖项时,我得到以下错误 sleuth是否只支持logback,并且还支持log4j2?

  • 我需要知道如何使用Spring侦探传播授权,以及传播授权标头中收到的令牌的完整机制需要实现什么。提前感谢您的宝贵时间。