Documentation forServer & Application Monitor
Monitoring your applications and environment is a key capability of Hybrid Cloud Observability and is also available in a standalone module, Server & Application Monitor (SAM). Hybrid Cloud Observability and SAM are built on the self-hosted SolarWinds Platform.

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:

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 to service: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

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.