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.

Java Application Server (SNMP)

This SAM application monitor template uses SNMP polling to assess the overall performance of Java application servers and JVMs, including the following types:

  • Apache Tomcat
  • GlassFish
  • IBM WebSphere
  • JBoss
  • Oracle WebLogic

This template is configured to send SNMP requests on port 1161.

You can also monitor Java web apps via remote Java Management Extension (JMX) polling with the following SAM templates: 

JMX monitoring is disabled if FIPS mode is enabled on the SolarWinds Platform server.

Prerequisites:

Target servers are configured for SNMP queries. See Configuring Java Applications Servers for JMX for details.

If using the SolarWinds Platform agent for Linux, you may need to complete additional configurations. See Configure Linux/Unix systems for monitoring by the SolarWinds Platform agent in SAM.

If using SNMPv2, the SolarWinds Platform agent for Linux automatically configures SNMP. For SNMPv3, see SNMP for agents.

Credentials

None. The template uses the SNMP public string assigned to the node.

Component monitors

Some components may not have preset warning or critical threshold values. You can add your own threshold limits as necessary. To learn more, see Set thresholds.

Classes Loaded Count

The number of classes currently loaded in the JVM.

For details, reference the following Java method: java.lang.management.ClassLoadingMXBean.getLoadedClassCount()

Classes Total Loaded Count

The number of classes that were loaded since the JVM was started.

For details, reference the following Java methods: java.lang.management.ClassLoadingMXBean and getTotalLoadedClassCount()

Classes Unloaded Count

Indicates the number of classes that were unloaded since the JVM was started.

For details, reference the following Java method: java.lang.management.ClassLoadingMXBean.getUnloadedClassCount()

Memory Pending Final Count

The approximate number of objects that are pending finalization. This should be as low as possible.

For details, reference the following Java methods: java.lang.management.MemoryMXBean. and getObjectPendingFinalizationCount()

Memory Heap Init Size (B)

The amount of memory (in bytes) that the JVM initially requests from the operating system for memory management used for heap memory pools.

For details, reference the following Java method: java.lang.management.Me and moryMXBean.getHeapMemoryUsage() and getInit()

Memory Heap Used (B)

The amount of used memory (in bytes) from heap memory pools. This should be as low as possible.

For details, reference the following Java method: java.lang.management.MemoryMXBean.getHeapMemoryUsage() and getUsed()

Memory Heap Committed (B)

The amount of memory (in bytes) committed by heap memory pools.

For details, reference the following Java methods: java.lang.management.MemoryMXBean.getHeapMemoryUsage(). and getCommitted()

Memory Heap Max Size (B)

The maximum amount of memory (in bytes) for all heap memory pools.

For details, reference the following Java method: java.lang.management.Me and moryMXBean.getHeapMemoryUsage() and getMax()

Memory Non Heap Init Size (B)

The amount of memory (in bytes) that the JVM initially requests from the operating system for memory management for non-heap memory pools.

For details, reference the following Java method: java.lang.management.MemoryMXBean.getNonHeapMemoryUsage() and getInit()

Memory Non Heap Used (B)

The amount of used memory (in bytes) from non-heap memory pools. This should be as low as possible.

For details, reference the following Java method: java.lang.management.MemoryMXBean.getNonHeapMemoryUsage() and getUsed()

Memory Non Heap Committed (B)

The amount of memory (in bytes) committed by non-heap memory pools.

For details, reference the following Java methods: java.lang.management.MemoryMXBean and getNonHeapMemoryUsage() and getCommitted()

Memory Non Heap Max Size (B)

The maximum size of memory (in bytes) for all non-heap memory pools.

For details, reference the following Java method: java.lang.management.MemoryMXBean.getNonHeapMemoryUsage() and getMax()

Memory Garbage Collections Count

The number of collections that have occurred, as returned by GarbageCollectorMXBean.getCollectionCount()

If garbage collection statistics are not available, this object is set to 0.

For details, reference the following Java method: java.lang.management.GarbageCollectorMXBean.getCollectionCount()

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.

Memory Garbage Collection Time (ms)

The approximate accumulated collection elapsed time (in milliseconds) since the JVM started. This object is set to 0 if the collection elapsed time is undefined for this collector.

For details, reference the following Java method: java.lang.management.GarbageCollectorMXBean.getCollectionTime()

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 JVM may request additional memory from the OS and may also release memory to the system over time. The value of init may be undefined.

This counter shows statistics for the first memory pool. If another pool needs monitoring, change the last digit of the OID.

For details, reference the following Java method: java.lang.management.MemoryPoolMXBean.ge and tUsage() and getInit()

See Object Name details above.

For IBM WebSphere, this counter is unavailable so you can disable it.

Memory Pool Used (B)

The amount of used memory in the memory pool. This counter shows statistics for the first memory pool. If another pool needs monitoring, change the last digit of the OID. This should be as low as possible.

For details, reference the following Java method: java.lang.managem and ent.MemoryPoolMXBean.getUsage() and getUsed()

Memory Pool Committed (B)

The amount of committed memory in the memory pool, in bytes, that is guaranteed to be available for use by the JVM. The amount of committed memory may change over time, increasing

This counter shows statistics for the first memory pool. If another pool needs monitoring, change the last digit of the OID.

For details, reference the following Java method: java.lang.management.MemoryPoolMXBean.getUsage()

getCommitted()

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).

This counter shows statistics for the first memory pool. If another pool needs monitoring, change the last digit of the OID.

For details, reference the following Java method: java.lang.management.MemoryPoolMXBean.getUsage() and getMax()

See Object Name details above.

For IBM WebSphere, this counter is unavailable so you can disable it.

Memory Pool Peak Used (B)

The amount of used memory in the memory pool at the peak usage point. This counter shows statistics for the first memory pool. If another pool needs monitoring, change the last digit of the OID.

For details, reference the following Java method: java.lang.management. and MemoryPoolMXBean.getPeakUsage() and getUsed()

See Object Name details above.

For IBM WebSphere, this counter is unavailable so you can disable it.

Memory Pool Peak Committed (B)

The amount of used memory in the memory pool at the peak usage point, in bytes. This counter shows statistics for the first memory pool. If another pool needs monitoring, change the last digit of the OID.

For details, reference the following Java method: java.lang.management.MemoryPoolMXBean.getPeakUsage() and getCommitted()

Memory Pool Peak Max Size (B)

The maximum size of the memory pool at the peak usage point, in bytes. This counter shows statistics for the first memory pool. If another pool needs monitoring, change the last digit of the OID.

For details, reference the following Java method: java.lang.management. and MemoryPoolMXBean.getPeakUsage() and getMax()

Threads Total Started Count

The number of threads created and started since the Java Virtual Machine started. This counter shows statistics for the first thread. If another thread needs monitoring, change the last digit of the OID.

For details, reference the following Java method: java.lang.management.ThreadMXBean.getTotalStartedThreadCount()

Thread Instant Blocked Count

The number of times that this thread has blocked the “to enter” or “re-enter” monitor. This counter shows statistics for the first thread. If another thread needs monitoring, change the last digit of the OID.

For details, reference the following Java methods: java.lang.management.ThreadMXBean.getThreadInfo(long,boolean)AndgetBlockedCount()

Thread Instant Blocked Time (ms)

The approximate accumulated elapsed time (in milliseconds) that a thread has blocked the “to enter” or “re-enter” monitor since it started, or since thread contention monitoring was enabled.

This object is always set to 0 if thread contention monitoring is disabled or not supported. This counter shows statistics for the first thread. If another thread needs monitoring, change the last digit of the OID. This should be as low as possible.

For details, reference the following Java method: java.lang.management.ThreadMXB and ean.getThreadInfo(long,boolean) and getBlockedTime()

Thread Instant Wait Count

This counter shows the number of times that this thread waited for notification. It also shows statistics for the first thread. If another thread needs monitoring, change the last digit of the OID.

For details, reference the following Java methods: java.lang.management.ThreadMXBean.getThreadInfo(long,boolean) and getWaitedCount()

Thread Instant Wait Time (ms)

The approximate accumulated elapsed time (in milliseconds) that a thread has waited for a monitor through a “java.lang.Object.wait” method since it started, or since thread contention monitoring was enabled.

This object is always set to 0 if thread contention monitoring is disabled or not supported. It also shows statistics for first thread. If another thread needs monitoring, change the last digit of the OID. This should be as low as possible.

For details, reference the following Java methods: java.lang.management.ThreadMXBean.getThreadInfo(long,boolean) and getWaitedTime()

Runtime Input Arguments Count

This is the number of input arguments passed to the Java Virtual Machine.

For details, reference the following Java method: java.lang.management.RuntimeMXBean.getInputArguments()

Runtime Uptime (ms)

The uptime of the JVM (in milliseconds). This is equivalent to (System.currentTimeMillis() - jvmStartTimeMs).

For details, reference the following Java methods: jvmRTStartTimeMs.:java.lang.management.RuntimeMXBean.getUptime()

Compiler Time (ms)

The approximate accumulated elapsed time (in milliseconds) spent in compilation since the JVM started. If multiple threads are used for compilation, this value is the summation of the approximate time that each thread spent in compilation. If compiler time monitoring is not supported, then this object remains set at 0.

For details, reference the following Java method: java.lang.management.CompilationMXBean.getTotalCompilationTime()