如何用春云启动器添加标签或行李?



我正在尝试将标签或行李添加到 OpenTracing 跟踪中。我正在通过@Beans创建跟踪器,但在使用云启动器附带的自动配置时无法弄清楚如何引用活动跨度。

使用此依赖项

<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-cloud-starter</artifactId>
<version>0.2.4</version>

我试过这个

tracer.activeSpan().setBaggageItem("baggage", "baggage");

而这个

scope.span().setBaggageItem("baggage", "baggage");

两者都会导致 NPE。即使尝试记录跨度或跟踪器对象也会给我一个 NPE,所以似乎我不必正确的模式来与之交互。

以下是跟踪器的设置方式。

@Bean
public io.opentracing.Tracer jaegerTracer() {
SamplerConfiguration samplerConfig = SamplerConfiguration.fromEnv().withType("const").withParam(1);
SenderConfiguration senderConfig = SenderConfiguration.fromEnv().withEndpoint("http://jaeger:14268/api/traces");
ReporterConfiguration reporterConfig = ReporterConfiguration.fromEnv().withLogSpans(true).withSender(senderConfig);
Configuration config = new Configuration("eclipse-hawkular").withSampler(samplerConfig).withReporter(reporterConfig);
return config.getTracer();
}

更多信息...

查看定义跨度装饰器的 opentracing-spring-web-contrib 代码,这是我从中获取默认跨度和相关标签的地方。但是,如果执行 restTemplate 是触发启动活动跨度的拦截的原因,如何添加自定义标签/行李?我假设我不应该直接与spanDecorator交互。

更多信息...

在使用opentracing-contrib-okhttp时也尝试添加行李。跟踪效果很好,但在使用基于拦截器的自动跟踪器时无法弄清楚如何添加袋装。

现在可以使用此单行添加行李。

TracerResolver.resolveTracer().activeSpan().setBaggageItem("baggage", "adding baggage");

在研究的过程中,也开始使用Spring 2.0.9.RELEASE和OpenTracing的单个依赖项,该依赖项使用0.32版本的Jaeger跟踪器。

<dependency>
<groupId>io.opentracing.contrib</groupId>
<artifactId>opentracing-spring-jaeger-cloud-starter</artifactId>
<version>1.0.3</version>
</dependency>

相关内容

  • 没有找到相关文章

最新更新