我正在尝试将我的应用程序升级到Java 17,我的应用程序是一个gradle项目,出于某些特定原因,我正在使用micrometer propagator代替Spring sleuth propagator。下面是我使用的代码,
import io.micrometer.tracing.Span;
import io.micrometer.tracing.SPanAndScope;
import io.micrometer.tracing.Tracer;
........
@Component
public class UtilSpanner implements BiFunction<AtomicReference<SpanAndScope>, RecieverRecord<String, ScheduleKafka>,RecieverRecord<String,ScheduleKafka>> {
private final Tracer tracer;
private final Propagator.Getter<ConsumerRecord<?,?>> extractor;
private final Propagator propagator;
public UtilSpanner(Tracer tracer, Propagator.Getter<ConsumerRecord<?,?>> extractor //here is the problem i am getting
, Propagator propagator){
this.tracer = tracer;
this.extractor = extractor;
this.propagator = propagator;
}
我在构造函数的paramater 1中遇到问题,无法识别Propagator.Getter。
下面是gradle依赖我使用的关于千分尺
plugins{
id 'org.springframework.boot' version '3.0.5'
id 'io.spring.dependency-management' version '1.1.0'
......
}
implementation 'io.micrometer:micrometer-core:1.10.6'
implementation 'io.micrometer:micrometer-registry-promethus:1.10.6'
implementation 'org.springframework.cloud:spring-cloud-starter-cuircuitbreaker-reactor-resiliance4j:3.0.1'
implementation 'io.micrometer:micrometer-tracing:latest.integration'
implementation 'io.micrometer:micrometer-observation'
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
请让我知道如何解决这个问题
1条答案
按热度按时间mwg9r5ms1#
由于
Propagator.Getter
是上下文相关的,因此您需要自己定义它,例如:另外,一些东西被重新设计,请查看
io.micrometer.observation.transport
包,在那里你也可以找到Propagator
接口,它有RequestReplyReceiverContext
和ReceiverContext
,这可能对你有用(以及如何使用它们)。