問題タブ [distributed-tracing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4931 参照

spring-boot - Spring sleuth Baggageキーが伝播されない

私は基本的に受信リクエストをインターセプトし、traceId、spanId などをログに記録するフィルター (OncePerRequestFilter) を持っています。 、ライブラリとして作成した理由は、ライブラリへの変更はすべてのモジュールに共通であるためです。ここで、HttpTracing から現在のスパンを抽出し、それにバゲージ キーを追加したため、trace や spanId などの http ヘッダーを介してすべてのサービスに伝達する必要がある新しい伝達キーを追加する必要があります (以下を参照)。

以下のように、propagation-keys と whitelisted-mdc-keys を application.yml (ライブラリを含む) ファイルに追加しました。

フィルターでこの変更を行った後、同じアプリで別のサービスに http 呼び出しを行うと、corelationId は使用できません。基本的にキーは伝達されません。

0 投票する
0 に答える
337 参照

apache-flink - トレース コンテキストが失われた opentracing と kafka の勇気

ソースとシンクとしてカフカを使用するいくつかの flink ジョブがあり、それにトレースを追加して、カフカから消費/生成されたメッセージが十分にトレースされるようにします。トレース、スパン、および親の traceId。そのために、opentracing-kafka-client(v0.1.11) を brave-opentracing(v0.35.1) と組み合わせて使用​​しています。メッセージをログに記録する必要があるため、カスタム インターセプターを使用している理由です。指定された形式で。

インターセプターを構成した後、それらは呼び出され、上流システムからの (ヘッダーからの) トレース情報を使用してログに記録しますが、kafka へのメッセージの再生成に関しては、トレース コンテキストが失われます。たとえば、以下のシナリオを検討してください。

1) 一部の残りのサービスによって Kafka に置かれたメッセージ 2) flink ジョブとインターセプターによって消費されたメッセージが開始され、ヘッダーからのトレース情報を使用してログに記録します 3) 処理後、メッセージは flink ジョブによって Kafka に生成されます

ステップ 2 までは問題なく機能しますが、メッセージの生成に関しては、前のステップのトレース情報は使用されません。これは、ヘッダー情報がないため、まったく新しいトレースが生成されるためです。

以下のようにトレーサーを登録しています:-

そして、私はopentracing kafkaを使用TracingConsumerInterceptorしています。TracingProducerInterceptor