marcingrzejszczak commented on PR #9389:
URL: https://github.com/apache/camel/pull/9389#issuecomment-1451887049

   So I've been playing around with this and I'm really surprised with how it's 
actually working currently with OpenTelemetry. Let's assume that I have the 
following routes
   
   ```java
   from("direct://foo")
                                .log("hello")
                                .to("direct://bar")
                                .to("http://example.org";);
                from("direct://bar")
                                .log("hello")
                                .to("direct://micrometer")
                                .to("http://example.org";);
                from("direct://micrometer")
                                
.setHeader(MicrometerConstants.HEADER_METRIC_NAME, constant("new.name"))
                                
.setHeader(MicrometerConstants.HEADER_METRIC_TAGS, 
constant(Tags.of("dynamic-key", "dynamic-value")))
                                
.to("micrometer:counter:name.not.used?tags=key=value")
                                .to("direct://baz");
                from("direct://baz")
                                .log("hello")
                                .to("bean:com.example.cameldemo.MyBean")
                                .to("exec:wc?args=--words 
/usr/share/dict/words")
                                .process(exchange -> {
                                        // Use the Camel Exec String type 
converter to convert the ExecResult to String
                                        // In this case, the stdout is 
considered as output
                                        String wordCountOutput = 
exchange.getIn().getBody(String.class);
                                        // do something with the word count
                                        System.out.println(wordCountOutput);
                                })
                                .to("file:///tmp/camel-outputdir?flatten=true")
                                .to("http://example.org";);
   ```
   
   I would assume that for the whole flow (e.g. from 
`producerTemplate.send("file:///tmp/camel-outputdir?flatten=true", 
defaultExchange);`) to the end I would have a single trace. From what I see 
this is not the case cause all `direct://` components are completely ignored in 
terms of continuing a trace (look at `TracingEventNotifier:shouldExclude` 
method).
   
   
![image](https://user-images.githubusercontent.com/3297437/222445340-df9a2702-f32a-400b-8eec-8d7822e30882.png)
   
   
![image](https://user-images.githubusercontent.com/3297437/222445371-b0dc0de2-ad28-4d40-8099-afa262421331.png)
   
   Is this really the intent of how this should actually work? I would assume 
that there should be 1 trace for the whole processing because otherwise this 
doesn't make a lot of sense (at least to me).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to