[ https://issues.apache.org/jira/browse/CAMEL-21858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17935145#comment-17935145 ]
Luis Sergio Faria Carneiro edited comment on CAMEL-21858 at 3/13/25 11:09 AM: ------------------------------------------------------------------------------ Hi [~squakez]. I submmited https://github.com/apache/camel/pull/17448 to fix it, let's see if it is approved. I overcame this issue with the current code by extending the existing span decorator and implementing the proposed fix, and it worked. As for the camel-opentelemetry2 component, I took a look at it, but didn't understand how it works. Just saw a couple of classes there and couldn't find how it relaates to some kind of span decorator. If you can provide me some hint on where to look, I can change that code as well. was (Author: luiscarneiro): Hi [~squakez]. I submmited https://github.com/apache/camel/pull/17448 to fix it, let's see if it is approved. I overcame this issue with the current code by extending the existing span decorator and implementing the proposed fix, and it worked. As for the camel-opentelemetry2 component, I took a look it, but didn't understand how it works. Just saw a couple of classes there and couldn't find how it relaates to some kind of span decorator. If you can provide me some hint on where to look, I can change that code as well. > camel-tracing: Incorrect http method on trace record > ---------------------------------------------------- > > Key: CAMEL-21858 > URL: https://issues.apache.org/jira/browse/CAMEL-21858 > Project: Camel > Issue Type: Bug > Components: camel-tracing > Reporter: Luis Sergio Faria Carneiro > Priority: Minor > > Consider the following integration created with the yaml dsl: > {code:java} > - from: > uri: rest:get:/demo > steps: > - setBody: > expression: > constant: '{"hello": "world"}' > - toD: > uri: "https://webhook.site/0148d971-4a63-4c61-8845-efd62b7242de" > parameters: > bridgeEndpoint: true > httpMethod: POST > throwExceptionOnFailure: false{code} > and that open telemetry tracing is enabled. > When a request to /demo is performed, we can see that the code performs a > POST request to [https://webhook.site/0148d971-4a63-4c61-8845-efd62b7242de,] > as it should, but the corresponding trace span reports the http.method as GET > instead. > This happens because the rest consumer sets the CamelHttpMethod header to GET > and this header is used by the tracing component to build the span. I > expected it to use give priority to the httpMethod endpoint parameter, as the > http component does. > similar scenario happens in this case: > > {code:java} > - from: > uri: rest:post:/demo > steps: > - removeHeaders: > pattern: "*" > - setBody: > expression: > constant: '{"hello": "world"}' > - toD: > uri: "https://webhook.site/0148d971-4a63-4c61-8845-efd62b7242de" > parameters: > bridgeEndpoint: true > httpMethod: POST > throwExceptionOnFailure: false {code} > Here we have the rest consumer defined with POST, but we remove the headers. > And the [span > decorator|https://github.com/apache/camel/blob/main/components/camel-tracing/src/main/java/org/apache/camel/tracing/decorators/AbstractHttpSpanDecorator.java#L47] > decides it is a GET because the endpoint has query parameters. The endpoint > in this case is > [https://webhook.site/0148d971-4a63-4c61-8845-efd62b7242de?bridgeEndpoint=true&httpMethod=POST&throwExceptionOnFailure=false|https://webhook.site/0148d971-4a63-4c61-8845-efd62b7242de?httMethod=true&httpMethod=POST&throwExceptionOnFailure=false] > > > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)