Я пытаюсь добавить метку или багаж к трассировке OpenTracing. Я создаю трассировщик через @Beans, но не могу понять, как ссылаться на активный диапазон при использовании автоконфигурации, которая поставляется с Cloud-Starter.
Использование этой зависимости
<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. Даже попытка зарегистрировать объект span или tracer дает мне 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 . Трассировка отлично работала, но не может понять, как добавить пакет при использовании авто-трассировщиков на основе перехватчика.