Hi Daniel, it looks like a bug with the names containing "-". Let me try to reproduce and I will create a Jira.
The good news is that I'm preparing a new Decanter release with a lot of updates and fixes. I will include this fix. Sorry for the inconvenience. Regards JB On Tue, Jan 17, 2023 at 7:52 AM Daniel Las <[email protected]> wrote: > > Hi, > > I'm trying to use Decanter 2.9.0 JMX Collector with Prometheus Appender to > monitor our applications. I have configured beans to be monitored as: > > object.name.system=java.lang:* > > but some metrics are not available. There are some messages logged in DEBUG > level like: > > 2023-01-17T06:48:03,607 | DEBUG | Karaf_Worker-10 | BeanHarvester > | 72 - org.apache.karaf.decanter.collector.jmx - 2.9.0 | Could not > read attribute java.lang:type=MemoryPool,name=G1 Survivor Space > UsageThresholdCount > > Is it a known issue or there is some workaround to have such JMX beans > metrics available? > > I also tried to monitor Kafka consumer metrics: > > object.name.kafkaConsumer=kafka.consumer:* > > but such configuration causes following errors to appear in the logs: > > 2023-01-17T06:50:46,143 | WARN | EventAdminThread #9 | eventadmin > | 2 - org.apache.karaf.services.eventadmin - 4.2.11 | EventAdmin: > Exception during event dispatch [org.osgi.service.event.Event > [topic=decanter/collect/jmx/jmx-local/kafka/consumer] > {hostName=empirica-algo-engine-hft.empirica-crypto, records-lag=0.0, > felix.fileinstall.filename=file:/opt/algo-engine-hft-4.2.11.4-SNAPSHOT/etc/org.apache.karaf.decanter.collector.jmx-local.cfg, > type=jmx-local, service.factoryPid=org.apache.karaf.decanter.collector.jmx, > decanter.collector.name=jmx, records-lead-min=5133554.0, > records-lead-avg=5135042.1, scheduler.period=60, records-lead=5136728.0, > scheduler.concurrent=false, component.id=3, karafName=root, host=null, > scheduler.name=decanter-collector-jmx, object.name.system=java.lang:*, > timestamp=1673938246142, > component.name=org.apache.karaf.decanter.collector.jmx, records-lag-avg=0.12, > url=local, > ObjectName=kafka.consumer:type=consumer-fetch-manager-metrics,client-id=consumer-ORDER-TO-TRADE-MEASURES-4,topic=MARKET_DATA_ENRICHED,partition=1, > > service.pid=org.apache.karaf.decanter.collector.jmx.044ca602-2290-4868-a6aa-b77131155312, > object.name.kafkaConsumer=kafka.consumer:*, records-lag-max=2.0, > preferred-read-replica=-1, hostAddress=172.22.0.13} | > [org.osgi.service.event.EventHandler] | > Bundle(org.apache.karaf.decanter.appender.prometheus [71])] > java.lang.IllegalArgumentException: Invalid metric name: > preferred-read-replica > at io.prometheus.client.Collector.checkMetricName(Collector.java:351) ~[?:?] > at io.prometheus.client.SimpleCollector.<init>(SimpleCollector.java:169) > ~[?:?] > at io.prometheus.client.Gauge.<init>(Gauge.java:69) ~[?:?] > at io.prometheus.client.Gauge$Builder.create(Gauge.java:75) ~[?:?] > at io.prometheus.client.Gauge$Builder.create(Gauge.java:72) ~[?:?] > at > io.prometheus.client.SimpleCollector$Builder.register(SimpleCollector.java:260) > ~[?:?] > at > io.prometheus.client.SimpleCollector$Builder.register(SimpleCollector.java:253) > ~[?:?] > at > org.apache.karaf.decanter.appender.prometheus.PrometheusServlet.handleEvent(PrometheusServlet.java:92) > ~[?:?] > at > org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:431) > [!/:?] > at > org.apache.felix.eventadmin.impl.tasks.HandlerTask.run(HandlerTask.java:70) > [!/:?] > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [?:1.8.0_322] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_322] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > [?:1.8.0_322] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > [?:1.8.0_322] > at java.lang.Thread.run(Thread.java:750) [?:1.8.0_322] > > Best regards > -- > Daniel Łaś
