2016-12-02 9 views
1

私はマイクロサービス間のAsyng呼び出しにKafkaを使用していますが、私はロギングにSpring Sleuthを使用しています。ロギングは正常ですが、Microservice1からMicroservice2へのメッセージがある場合、ロギングのメッセージには異なるTrace-IDがあります。彼らは同じトレースIDを持っている必要はありませんが、別のSpanIdを持っていませんか?特別な構成はありますか?Spring Cloud他のトレースIDがKafkaと統合

+0

デフォルトでは、メッセージヘッダーはKafkaバインダーによって転送されません。あなたは 'spring.cloud.stream.kafka.binder.h eaders」(http://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#_kafka_binder_properties)を参照してください。トレースに関連するヘッダーが正しく送信されているかどうかを確認します。 – tan9

+0

snwer @ tan9ありがとう! :D。 X-B3-TRACEID - - X-B3-SpanId - X-B3- : 春: クラウド: ストリーム: カフカ: バインダー: ヘッダ IはYAMLファイルからこのコードを発見しましたX-Process-Id - X-B3-ParentSpanId - X-Span-Name - X-Process-Id application.propertiesファイルをどのように入れるのか知っていますか? – AleGallagher

+0

'spring.cloud.stream.kafka.binder.headers [0] = X-B3-TraceId' ' spring.cloud.stream.kafka.binder.headers [1] = X-B3-SpanId' ... または 'spring.cloud.stream.kafka.binder.headers = X-B3-SpanId、X-B3-SpanId、... 'を使用してください。 – tan9

答えて

2

デフォルトでは、メッセージヘッダーはSpring Cloud Kafkaバインダーによって移送されません。の説明に従って、spring.cloud.stream.kafka.binder.headersを手動で設定する必要があります。トレースに関連するヘッダーが正しく送信されているかどうかを確認します。

あなたのapplication.ymlで、次のようZipkinヘッダーを設定することができます

spring: 
    cloud: 
    stream: 
     kafka: 
     binder: 
      headers: 
      - X-B3-TraceId 
      - X-B3-SpanId 
      - X-B3-Sampled 
      - X-B3-ParentSpanId 
      - X-Span-Name 
      - X-Span-Export 

またはあなたのapplication.properties中:

spring.cloud.stream.kafka.binder.headers[0]=X-B3-TraceId 
spring.cloud.stream.kafka.binder.headers[1]=X-B3-SpanId 
spring.cloud.stream.kafka.binder.headers[2]=B3-Sampled 
spring.cloud.stream.kafka.binder.headers[3]=X-B3-ParentSpanId 
spring.cloud.stream.kafka.binder.headers[4]=X-Span-Name 
spring.cloud.stream.kafka.binder.headers[5]=X-Span-Export 

またはカンマで区切ったリストで:

spring.cloud.stream.kafka.binder.headers=X-B3-TraceId,X-B3-SpanId,B3-Sampled,\ 
    X-B3-ParentSpanId,X-Span-Name,X-Span-Export 
+0

ありがとうございました! :D – AleGallagher

関連する問題