Claus Ibsen created CAMEL-26195:
-----------------------------------
Summary: camel-opentelemetry-metrics - counter with
increment=${body} adds 1 for a Map, List, POJO, File, stream or null body, and
the counter header types are wrong in the catalog
Key: CAMEL-26195
URL: https://issues.apache.org/jira/browse/CAMEL-26195
Project: Camel
Issue Type: Bug
Components: camel-opentelemetry
Reporter: Claus Ibsen
Fix For: 4.24.0
Found while adding the catalog body types of opentelemetry-metrics
(CAMEL-24961, PR #28414).
h4. 1. A body that does not convert to a number silently adds 1
{{CounterProducer.doProcess}} (main 2a465aa4814c, line 69 to 79) evaluates
{{increment}} (and {{decrement}}) as a simple expression converted to Long;
when the conversion gives null the code falls through to {{counter.add(1L)}}.
With {{increment=$\{body\}}} a body "42" adds 42 and "text" fails with a
TypeConversionException, but a Map, List, POJO, File, stream or null body
silently adds 1. camel-micrometer {{CounterProducer}} (line 44 to 53) has the
same fall-through (not run). Checked on 4.24.0-SNAPSHOT with an OTel
InMemoryMetricReader as GlobalOpenTelemetry.
Proposed: when the increment or decrement option is set but evaluates to null,
fail (or skip) instead of adding 1.
h4. 2. The catalog says the CamelMetricsCounterIncrement and Decrement headers
are Double
{{OpenTelemetryConstants}} (line 29 to 32) documents
{{HEADER_COUNTER_DECREMENT}} and {{HEADER_COUNTER_INCREMENT}} with {{javaType =
"Double"}}, but {{CounterProducer}} (line 71 to 72) reads them as Long. Read in
the code, not run.
Proposed: set {{javaType = "long"}} (as the histogram value header) and
regenerate.
_Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)