Как добавить метки или багаж с помощью весенне-облачного стартера? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь добавить метку или багаж к трассировке 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 . Трассировка отлично работала, но не может понять, как добавить пакет при использовании авто-трассировщиков на основе перехватчика.

1 Ответ

0 голосов
/ 16 апреля 2019

Теперь можно добавить багаж этой отдельной строкой.

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

В ходе работы над этим также начали использовать Spring 2.0.9.RELEASE и единственную зависимость для OpenTracing, которая использует версию 0,32 Jaeger Tracer.

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