Documentation forServer & Application Monitor

Java Application Server (SNMP)

This template uses SNMP polling to assess the overall performance of Java application servers and Java Virtual Machines (JVMs), including the following types:

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

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

As an alternative to SNMP, you can monitor Java web apps via remote Java Management Extension (JMX) polling with the following SAM templates: 

To comply with Federal Information Processing Standards (FIPS), JMX monitoring is disabled when FIPS mode is enabled on the Orion server, starting in SAM 2020.2.

Prerequisites:

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

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

If using SNMP v2, the Orion agent for Linux automatically configures SNMP. If using SNMP v3, 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 have been 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 have been 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()

Set the correct Object Name. You can see which names are available by running the Find Processes, Services, and Performance Counters wizard. In the wizard, expand java.lang, and GarbageCollector and check which names are available. By default, this counter uses: name=Copy.

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

Set the correct Object Name. You can see which names are available by running the Find Processes, Services, and Performance Counters wizard. In the wizard, expand java.lang, and GarbageCollector and check which names are available. By default, this counter uses: name=Copy.

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

Set the correct Object Name. You can see which names are available by running the Find Processes, Services, and Performance Counters wizard. In the wizard, expand java.langand MemoryPool and check which names are available. By default, this counter uses: name=Code Cache.

For IBM WebSphere, this counter is unavailable and you should 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()

Set the correct Object Name. You can see which names are available by running the Find Processes, Services, and Performance Counters wizard. In the wizard, expand java.langandMemoryPool and check which names are available. By default, this counter uses: name=Code Cache.

For IBM WebSphere, this counter is unavailable and you should 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()

Set the correct Object Name. You can see which names are available by running the Find Processes, Services, and Performance Counters wizard. In the wizard, expand java.lang and MemoryPool and check which names are available. By default, this counter uses: name=Code Cache.

For IBM WebSphere, this counter is unavailable and you should 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()

Set the correct Object Name. You can see which names are available by running the Find Processes, Services, and Performance Counters wizard. In the wizard, expand java.lang and MemoryPool and check which names are available. By default, this counter uses: name=Code Cache.

For IBM WebSphere, this counter is unavailable and you should 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()