Skip to content
Cyrille Le Clerc edited this page May 19, 2016 · 6 revisions

Troubleshooting JmxtransAgent

JmxtransAgent does not collect the metrics of my mbeans

JmxtransAgent will not see your mbeans if they are not declared in the Platform MBean Server (ManagementFactory.getPlatformMBeanServer()). Enabling JmxtransAgent Diagnostic Info (see below) will help listing all the mbeans of the Platform MBean Server.

Enabling JmxtransAgent Diagnostic info

Since jmxtrans-agent 1.9

Enable diagnostic info with -Dorg.jmxtrans.agent.JmxTransAgent.diagnostic=true.

Every 30 seconds, the diagnostic infos are dumped in stdout. To stop the disgnostic thread, set JmxtransAgent.DIAGNOSTIC to false.

Sample of diagnostic info outputted in stdout:

2015-04-21 09:23:23.041 [jmxtrans-agent] JMXTRANS-AGENT DIAGNOSTIC INFO
2015-04-21 09:23:23.041 [jmxtrans-agent] Logger level: INFO
2015-04-21 09:23:23.041 [jmxtrans-agent] ManagementFactory.getPlatformMBeanServer().queryMBeans(null, null)
2015-04-21 09:23:23.041 [jmxtrans-agent] 	JMImplementation:type=MBeanServerDelegate
2015-04-21 09:23:23.041 [jmxtrans-agent] 	com.sun.management:type=DiagnosticCommand
2015-04-21 09:23:23.041 [jmxtrans-agent] 	com.sun.management:type=HotSpotDiagnostic
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=ClassLoading
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=Compilation
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=GarbageCollector,name=PS MarkSweep
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=GarbageCollector,name=PS Scavenge
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=Memory
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=MemoryManager,name=CodeCacheManager
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=MemoryManager,name=Metaspace Manager
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=MemoryPool,name=Code Cache
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=MemoryPool,name=Compressed Class Space
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=MemoryPool,name=Metaspace
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=MemoryPool,name=PS Eden Space
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=MemoryPool,name=PS Old Gen
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=MemoryPool,name=PS Survivor Space
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=OperatingSystem
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=Runtime
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.lang:type=Threading
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.nio:type=BufferPool,name=direct
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.nio:type=BufferPool,name=mapped
2015-04-21 09:23:23.041 [jmxtrans-agent] 	java.util.logging:type=Logging
2015-04-21 09:23:23.041 [jmxtrans-agent] ENF OF JMXTRANS-AGENT DIAGNOSING INFO

...

<<dump every 30 seconds>>

Enabling logs

jmxtrans-agent has its own logging framework to not interfere with java.util.logging (this creates problems with wildfly), the messages are outputted in stdout.

You can enable jmxtrans-agent logs using the org.jmxtrans.agent.util.logging.Logger.level system property, the valid values are TRACE, FINEST, FINER, FINE, DEBUG, INFO, WARNING, WARN, SEVERE.

-Dorg.jmxtrans.agent.util.logging.Logger.level=TRACE