Jonas Nilsson created CAMEL-21661:
-------------------------------------

             Summary: camel-micrometer - multiple registrations of gauge 
camel.exchanges.inflight
                 Key: CAMEL-21661
                 URL: https://issues.apache.org/jira/browse/CAMEL-21661
             Project: Camel
          Issue Type: Bug
          Components: camel-micrometer
    Affects Versions: 4.8.3
            Reporter: Jonas Nilsson


Details in Zulip: 
[https://camel.zulipchat.com/#narrow/channel/257298-camel/topic/WARN.20log.20in.20camel-micrometer.204.2E8.2E3.3F]

Simple test route:
 
{code:java}
from("sftp:xxx") 
  .routeId("SftpReadFileTest") 
  .log("Received file ${header.CamelFileName}") 
  .to("jms:test.queue");{code}
Logging from first file (one WARN then DEBUG)


{code:java}

INFO SftpReadFileTest - Received file test_file.xml 
WARN i.m.core.instrument.MeterRegistry - This Gauge has been already registered 
(MeterId{name='camel.exchanges.inflight', 
tags=[tag(camelContext=test-camelspringboot-app),tag(kind=CamelExchangeEvent),tag(routeId=SftpReadFileTest)]}),
 the Gauge registration will be ignored. Note that subsequent logs will be 
logged at debug level. 
DEBUG i.m.core.instrument.MeterRegistry - This Gauge has been already 
registered (MeterId{name='camel.exchanges.inflight', 
tags=[tag(camelContext=test-camelspringboot-app),tag(kind=CamelExchangeEvent),tag(routeId=SftpReadFileTest)]}),
 the Gauge registration will be ignored. 
DEBUG i.m.core.instrument.MeterRegistry - This Gauge has been already 
registered (MeterId{name='camel.exchanges.inflight', 
tags=[tag(camelContext=test-camelspringboot-app),tag(kind=CamelExchangeEvent),tag(routeId=SftpReadFileTest)]}),
 the Gauge registration will be ignored. 
DEBUG i.m.core.instrument.MeterRegistry - This Gauge has been already 
registered (MeterId{name='camel.exchanges.inflight', 
tags=[tag(camelContext=test-camelspringboot-app),tag(kind=CamelExchangeEvent),tag(routeId=SftpReadFileTest)]}),
 the Gauge registration will be ignored.{code}
Second file and beyond:


{code:java}
INFO SftpReadFileTest - Received file test_file2.xml
DEBUG i.m.core.instrument.MeterRegistry - This Gauge has been already 
registered (MeterId{name='camel.exchanges.inflight', 
tags=[tag(camelContext=test-camelspringboot-app),tag(kind=CamelExchangeEvent),tag(routeId=SftpReadFileTest)]}),
 the Gauge registration will be ignored.
DEBUG i.m.core.instrument.MeterRegistry - This Gauge has been already 
registered (MeterId{name='camel.exchanges.inflight', 
tags=[tag(camelContext=test-camelspringboot-app),tag(kind=CamelExchangeEvent),tag(routeId=SftpReadFileTest)]}),
 the Gauge registration will be ignored.
DEBUG i.m.core.instrument.MeterRegistry - This Gauge has been already 
registered (MeterId{name='camel.exchanges.inflight', 
tags=[tag(camelContext=test-camelspringboot-app),tag(kind=CamelExchangeEvent),tag(routeId=SftpReadFileTest)]}),
 the Gauge registration will be ignored.{code}
{{ }}
I suspect this is not due to a change in camel-micrometer, or rather, that this 
"bug" has been there all the time.
But that Micrometer started to log this warning in the latest version, 
introduced in this commit: 
[https://github.com/micrometer-metrics/micrometer/commit/12d30723e6baff46a97b1b364e3085adbed543ee]

 

I see that Camel 4.4.4 is using 1.12.10 of io.micrometer packages, and Camel 
4.8.3 is using 1.13.9 where this new warning was added.

 

I'm not super knowledgeable about Camel source code and how everything works 
behind the scenes, but I suspect it could be this ExchangeEvent handler that 
are trying to register the gauage over and over again? (and that this should 
only be done once, and then the value should be updated instead?): 
[https://github.com/apache/camel/blob/main/components/camel-micrometer/src/main/java/org/apache/camel/component/micrometer/eventnotifier/MicrometerExchangeEventNotifier.java#L143]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to