0

タグまたはバゲージを 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 を引き起こします。スパンまたはトレーサー オブジェクトをログに記録しようとしても 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を使用するときにバゲージを追加しようとしました。トレースはうまく機能しましたが、インターセプター ベースの自動トレーサーを使用する場合、バギングを追加する方法がわかりません。

4

1 に答える 1

0

これ1本で荷物を追加できるようになりました。

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

これに取り組む過程で、Spring 2.0.9.RELEASE と、Jaeger トレーサーの 0.32 バージョンを使用する OpenTracing の単一の依存関係の使用も開始しました。

<dependency>
    <groupId>io.opentracing.contrib</groupId>
    <artifactId>opentracing-spring-jaeger-cloud-starter</artifactId>
    <version>1.0.3</version>
</dependency>
于 2019-04-16T16:02:00.667 に答える