問題タブ [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.
spring-boot - Spring sleuth Baggageキーが伝播されない
私は基本的に受信リクエストをインターセプトし、traceId、spanId などをログに記録するフィルター (OncePerRequestFilter) を持っています。 、ライブラリとして作成した理由は、ライブラリへの変更はすべてのモジュールに共通であるためです。ここで、HttpTracing から現在のスパンを抽出し、それにバゲージ キーを追加したため、trace や spanId などの http ヘッダーを介してすべてのサービスに伝達する必要がある新しい伝達キーを追加する必要があります (以下を参照)。
以下のように、propagation-keys と whitelisted-mdc-keys を application.yml (ライブラリを含む) ファイルに追加しました。
フィルターでこの変更を行った後、同じアプリで別のサービスに http 呼び出しを行うと、corelationId は使用できません。基本的にキーは伝達されません。
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