OpenNMS skipping certain JMX MXBeans while collection

80 Views Asked by At

I have exposed an MBean NotifyFailedTriggers that exposes an Integer value. I have configured the poller, collectd and jmx-datacollection config files correctly. However, the collectd daemon seems to be skipping the mbean saying it is not registered. See the attached log.

2018-06-12 13:08:41,204 DEBUG [pool-10-thread-8] o.o.n.j.i.DefaultJmxCollector: Collecting MBean (objectname=com.example:name=notifyFailedTriggers, wildcard=false)

2018-06-12 13:08:41,205 DEBUG [pool-10-thread-8] o.o.n.j.i.DefaultJmxCollector: Collecting ObjectName com.example:name=notifyFailedTriggers

2018-06-12 13:08:41,328 DEBUG [pool-10-thread-8] o.o.n.j.i.DefaultJmxCollector: ObjectName com.example:name=notifyFailedTriggers is not registered.

2018-06-12 13:08:41,329 DEBUG [pool-10-thread-8] o.o.n.j.i.DefaultJmxCollector: Skip ObjectName com.example:name=notifyFailedTriggers

2018-06-12 13:08:41,510 INFO [Collectd-Thread-15-of-50] o.o.n.c.CollectableService: run: finished collection for 3/xx.xx.84.122/onms-poc/example1

2018-06-12 13:08:41,510 DEBUG [Collectd-Thread-15-of-50] o.o.n.s.LegacyScheduler: schedule: Adding ready runnable CollectableService for service 3:/xx.xx.84.122:onms-poc (ready in 300000ms) at interval 300000

This is a standalone java application that is exposing the MXBeans.

Is there a specific reason why it considers this MXBean to be unregistered and hence skipping it?

1

There are 1 best solutions below

3
On

In a nutshell, it considers the MXBean to be unregistered if the MBean server says that it is. You may need to configure the application to enable certain beans, or perhaps the version of the application that you're using does not support the particular bean in question.

Behind the curtain, the JMX collector asks the MBean server whether the object is registered. If the MBean server responds that it is not, the JMX collector logs the message you pasted. Here's the JMX collector code where that happens, and here's the documentation of the "isRegistered" method that it's calling to make that determination.