JBoss (JMX)
This SAM application monitor template monitors JBoss server statistics via the JMX protocol. You can use the SolarWinds Platform agent for Linux or SNMP agentless for monitoring.
JMX polling is not supported if FIPS mode is enabled or if using the SolarWinds Platform Agent for Windows. To configure an application to poll agentlessly, edit the assigned application, expand the Advanced section, and change the Preferred Polling Method from Agent to Agentless.
Prerequisites
Target servers support JMX queries. See Configure Java application servers and JVMs for SAM monitoring.
For tips, see this THWACK thread.
To use the SolarWinds Platform agent for Linux:
- The agent must be installed on the target Linux machine,
- The node must be managed by the SolarWinds Platform agent, and
- The target server must be configured properly. See the JMX section in Configure Linux/Unix systems for monitoring by the SolarWinds Platform agent in SAM.
Template configuration changes
Update the following default settings in component monitors:
- The template is configured to send JMX requests on port 8686, by default. For this template, change the port to 9999.
- The URL is set to
/jmxrmi
by default. For this template, change the URL toservice:jmx:remoting-jmx://${IP}:${PORT}
. - The URL is set to
/jmxrmi
by default. For this template, change the URL depending on your JBoss version:- WildFly 8, 9, and 10 and JBoss EAP 7 use protocols:
service:jmx:remote+http://ip:9990 or service:jmx:remote+https://ip:9994
- JBoss EAP 6 and JBoss AS 7 use protocol:
service:jmx:remoting-jmx://ip:9999
- JBoss EAP 5.2 and JBoss AS 6.1 use protocol:
service:jmx:rmi:///jndi/rmi://ip:1090/jmxrmi
- WildFly 8, 9, and 10 and JBoss EAP 7 use protocols:
In order for the SAM JMX Monitor to connect, copy the jboss-cli-client.jar provided by the JBoss EAP installation to a location in SolarWinds Platform. Add the path location in jsl64.ini and then restart the JMXBridge service through Orion Service Manager.
If using JConsole to connect to a remote JBoss server for testing or troubleshooting purposes, install the latest JDK version on SolarWinds Platform server that supports jconsole.jar, and make sure JConsole uses the new JDK path.
Credentials
Required credentials are dependent on the JMX configuration.
Component monitors
Components may vary in a running environment. You can add your own threshold limits, as needed.
Classes Loaded Count
The number of classes that are currently loaded in the JVMs.
Classes Total Loaded Count
The total number of classes that were loaded since the JVM started execution.
Classes Unloaded Count
The total number of classes unloaded since the JVM started started execution.
Memory Pending Final Count
The approximate number of objects for which finalization is pending.
Memory Heap Init Size (B)
The initial amount of memory in bytes that the JVM allocates; or -1 if undefined.
Memory Heap Used (B)
The amount of used memory, in bytes. The amount of used memory in the returned memory usage is the amount of memory occupied by both live objects and garbage objects that have not been collected, if any.
Memory Heap Committed (B)
The amount of committed memory in bytes.
Memory Heap Max Size (B)
The maximum amount of memory in bytes that can be used; or -1 if undefined.
Memory Non Heap Init Size (B)
The initial amount of memory in bytes that the JVM allocates; or -1 if undefined.
Memory Non Heap Used (B)
The amount of used memory in bytes.
Memory Non Heap Committed (B)
The amount of committed memory in bytes.
Memory Non Heap Max Size (B)
The maximum amount of memory in bytes that can be used; or -1 if undefined.
Memory Garbage Collections Count
The approximate accumulated collection elapsed time in milliseconds.
To find available Object Names, launch the Component Monitor Wizard and start creating a JMX Monitor on the target system, as described in Create a custom JMX Monitor in SAM. On the Select Components tab, expand the GarbageCollector and java.lang branches In the Available MBeans tree. Hover over an item to display Object Names in the tooltip. By default, this counter uses: name=Copy.
Memory Garbage Collection Time (ms)
The approximate accumulated collection elapsed time in milliseconds.
See Object Name details above.
Memory Pool Init Size (B)
The initial amount of memory (in bytes) that the JVM requests from the OS for memory management during startup. The Java virtual machine may request additional memory from the operating system and may also release memory to the system over time. The value of init may be undefined.
See Object Name details above.
Memory Pool Used (B)
The amount of memory currently used (in bytes).
See Object Name details above.
Memory Pool Committed Size (B)
The amount of memory (in bytes) that is guaranteed to be available for use by the JVM. The amount of committed memory may change over time (increase or decrease). The JVM may release memory to the system and committed could be less than init. committed will always be greater than or equal to used.
See Object Name details above.
For IBM WebSphere, this counter is unavailable so you can disable it.
Memory Pool Max Size (B)
The maximum amount of memory (in bytes) that can be used for memory management. Its value may be undefined. The maximum amount of memory may change over time if defined. The amount of used and committed memory will always be less than or equal to max if max is defined. A memory allocation may fail if it attempts to increase the used memory such that used > committed even if used <= max would still be true (for example, when the system is low on virtual memory).
See Object Name details above.
For IBM WebSphere, this counter is unavailable so you can disable it.
Memory Pool Peak Used (B)
The peak amount of memory currently used (in bytes).
See Object Name details above.
For IBM WebSphere, this counter is unavailable so you can disable it.
Memory Pool Peak Committed (B)
The peak amount of memory (in bytes) that is guaranteed to be available for use by the JVM. The amount of committed memory may change over time (increase or decrease). The JVM may release memory to the system and committed could be less than init. committed will always be greater than or equal to used.
See Object Name details above.
Memory Pool Peak Max Size (B)
The maximum peak amount of memory (in bytes) that can be used for memory management. Its value may be undefined. The maximum amount of memory may change over time if defined. The amount of used and committed memory will always be less than or equal to max if max is defined. A memory allocation may fail if it attempts to increase the used memory such that used > committed even if used <= max would still be true (for example, when the system is low on virtual memory).
See Object Name details above.
Threads Total Started Count
The total number of threads created and also started since the JVM started.
Current Thread Count
The current number of live threads including both daemon and non-daemon threads.
Current Thread Cpu Time
The total CPU time for the current thread in nanoseconds.
Current Thread User Time
The CPU time that the current thread has executed in user mode in nanoseconds.
Runtime Uptime (ms)
The uptime of the JVM in milliseconds.
Compiler Time (ms)
The approximate accumulated elapsed time (in milliseconds) spent in compilation.
Active Thread Count
The number of active threads in the JVM.
Active Thread Group Count
The number of active thread groups in the JVM.
Free Memory
The amount of free memory for the JVM that the app server instance runs on. This counter should be as high as possible.
Available Processors
The number of available processors.
Total Memory
The total memory for the JVM that the app server instance runs on.