You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Matt Robbins (Jira)" <ji...@apache.org> on 2020/06/23 10:20:00 UTC

[jira] [Created] (CAMEL-15230) RabbitMqSpanDecorator - Invalid Parent Span Id when EXCHANGE_NAME header not set

Matt Robbins created CAMEL-15230:
------------------------------------

             Summary: RabbitMqSpanDecorator - Invalid Parent Span Id when EXCHANGE_NAME header not set
                 Key: CAMEL-15230
                 URL: https://issues.apache.org/jira/browse/CAMEL-15230
             Project: Camel
          Issue Type: Bug
          Components: camel-opentracing
    Affects Versions: 3.4.0
            Reporter: Matt Robbins


It seems like there is not strict requirement for _*rabbitmq.EXCHANGE_NAME*_ header to set by a producer e.g. the following code "works":
{code:java}
from("direct:foo")
   .to("bar.exchange?queue=bar.queue&autoDelete=false")
   .end()
{code}
However in this instance a span will be created with null as the operation name.

Such spans will be ignored by the collector e.g. Jaeger, which results in subsequent spans having missing parents and "invalid parent span id" warnings appearing.

Doing the following prevents this.
{code:java}
from("direct:foo") 
  .setHeader("rabbitmq.EXCHANGE_NAME").simple("bar.exchange")
  .to("bar.exchange?queue=bar.queue&autoDelete=false")
  .end()
{code}
It seems like we don't necessarily need the overridden _*getDestination*_ method in the _*RabbitMqSpanDecorator*_ and could fall through to the base implementation?

Happy to raise a PR but thought I would collect thoughts in case I had missed some subtlety. 

 

 

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)