Schedule demo

Java Runtime Monitors


Java Runtime Monitoring - Overview

Java Runtime Monitor provides out-of-the-box remote monitoring and management on the Java platform and of applications that run on it. It monitors performance metrics like Memory (JVM), Garbage Collection (GC) and Thread Statistics. Thresholds can be associated and alarms generated. Further, operations such as Automated Thread dump, Heap dump and Perform GC for management are also supported. The different JVM vendors supported by Applications Manager are Sun JVM, IBM JVM and Oracle JRockit JVM.

In this help document, you will learn how to get started with Java monitoring along with the list of parameters that are monitored using Applications Manager.

Creating a new Java Runtime monitor

Prerequisites for Java Runtime Monitor: Know more about the JVM arguments to add to your application for Java Runtime Monitoring

Using the REST API to add a new Java Runtine monitor:Click here

  1. Click New Monitor. Choose Java Runtime.
  2. Enter the IP Address or hostname of the host in which the Monitor is running.
  3. Enter the SubNetMask of the network.
  4. Provide the port number in which JDK is running (default: 1099). Also, you can provide multiple ports separated by commas.
  5. You can enter your own credential details or select preconfigured credentials details in Credentials Manager. If you wish to enter your own credentials, specify username and password details for this monitor.
  6. Enter the JNDI name. For example, /jmxrmi.
  7. To enable customized JMX URL, check the Enable JMX URL checkbox and enter the JMX URL. (The URL should be of the format service:jmx:rmi:///jndi/rmi://HOST:PORT/jmxrmi. For example, a jboss customized jmx URL can be - service:jmx:remoting-jmx://HOST:PORT/ and a websphere customized jmx URL - service:jmx:wsrmi://HOST:PORT/)
  8. If Authentication is enabled, enter the username and password.
  9. Enter the polling interval time in minutes.
  10. If you are adding a new monitor from the Central Server, select a Probe Server.
  11. Choose the Monitor Group, to which you want to associate the Monitor (optional). You can choose multiple groups to associate your monitor.
  12. Click Add Monitor(s). This discovers the Monitors from the network and starts monitoring them.
Note:
  • Support is available for JRE1.5 and above for Java Runtime. Support for Heap dump operation is available if HotSpotDiagnostic MBean is present in the JVM.
  • Support given for JDK 1.8 : When monitoring with JDK 1.8 MetaSpace, Applications Manager monitors and displays new memory space called MetaSpace and Compressed Class Space instead of the former Permanent Generation (Non-Heap).
  • In case you are unable to add the monitor even after enabling JMX, try providing the below argument:
     -Djava.rmi.server.hostname=[YOUR_IP]

Monitored Parameters

  • Availability tab gives the availability history for the past 24 hours or 30 days.
  • Performance tab gives the health status and events for the past 24 hours or 30 days.
  • List view enables you to perform bulk admin configurations.

Java Runtime Monitor checks the availability, response time, connection time (time taken by the Applications Manager to look up the JMX agent on the remote JVM) of the monitor, along with many other parameters listed below.

Overview

ParameterDescription
Monitor Information
NameName of the JavaRuntime monitor.
HealthSpecifies the health (Clear, Warning, Critical) of the JavaRuntime monitor
TypeSpecifies the type you are monitoring.
Host NameSpecifies the host at which the Java virtual machine is running.
PortSpecifies the port number at which the Java virtual machine is running.
Host OSSpecifies the OS of the host where the JavaRuntime monitor is running.
JVMSpecifies the Java virtual machine name and version.
VendorSpecifies the Java virtual machine Vendor Name.
Processor CountSpecifies the number of processors available to the Java virtual machine.
Last Polled atSpecifies the time at which the last poll was performed.
Next Poll atSpecifies the time at which the next poll is scheduled.
AvailabilityShows the current status of the JavaRuntime monitor - available or not available.
Connection TimeTime taken to connect to the Java virtual machine.
Memory Pool
Eden Space (Heap Memory)The pool from which memory is initially allocated for most objects.
Survivor Space (Heap Memory)Pool containing objects that have survived GC of eden space.
Tenured Generation (Heap Memory)Pool containing objects that have existed for some time in the survivor space.
Java HeapSpace where the JVM stores the objects.
Permanent Generation (Non-Heap) (for versions older than JDK 1.8)Holds all the reflective data of the virtual machine itself, such as class and method objects. With JVMs that use class data sharing, this generation is divided into read-only and read-write areas.
MetaSpace (for JDK 1.8)The Native memory space for the representation of class metadata is called Metaspace. MetaSpace use native memory to store meta-data and that grows automatically.
Compressed Class Space (for JDK 1.8)Compressed Class Space contains only class metadata.
Code Cache (Non-Heap)Memory used for compilation and storage of native code.
JIT Code CacheMemory that is converted to assembler and stored for running at higher speed.
NurserySeparate space for newly allocated objects.
Class Loading
Classes loadedNumber of classes loaded
Classes UnloadedNumber of classes unloaded
JVM Statistics
CPU LoadSpecifies the percentage of load on the machine caused by the JVM.
0 indicates no load is created and 100 indicates all load is created by the JVM
CPU UsageThis indicates the CPU usage of the JVM on the server.
Max file descriptorMaximum permissible open file descriptor. Available only for UNIX.
Host Memory
Total Physical MemoryTotal amount of physical memory in Megabytes.
Free Physical MemoryThe amount of free physical memory in Megabytes.
Total Swap SpaceTotal amount of swap space in Megabytes.
Committed Virtual MemoryThe amount of virtual memory that is guaranteed to be available to the running process in Megabytes.

Garbage Collection

Garbage Collection in Java is an automated memory management process wherein the objects that are no longer needed or used are deleted/removed and helps to reclaim unused runtime memory. Using the Perform GC button, Applications Manager's Java Runtime monitor allows you to perform the Garbage Collection process and helps to free up memory for the monitored Java application. Once GC is performed, you can view the difference in memory for your application by clicking the View Impact button.

ParameterDescription
Garbage Collector
Time Spent/MinApproximate collection elapsed time in milliseconds.
Collections/MinTotal number of collections that have occurred.
Thread CountNumber of threads used for Garbage Collector.
Last Start TimeStart time of this GC.
Last End TimeEnd time of this GC.
Memory usage before GCMemory usage of all memory pools at the beginning of this GC.
Memory usage after GCMemory usage of all memory pools at the end of this GC.
GC timeTime taken to perform garbage collection.
Compile timeTime spent in just-in-time (JIT) compilation.

Threads

ParameterDescription
Thread Parameters
Total threads startedTotal number of threads created and also started since the Java virtual machine started.
Peak ThreadsPeak live thread count since the Java virtual machine started or peak was reset.
Live ThreadsNumber of live threads currently running.
Daemon ThreadsNumber of daemon threads currently running.
Runnable ThreadsA thread executing in the Java virtual machine is in this state.
Blocked ThreadsA thread that is blocked waiting for a monitor lock is in this state.
Waiting ThreadsA thread that is waiting indefinitely for another thread to perform a particular action is in this state.
Timed waiting ThreadsA thread that is waiting for another thread to perform an action, for up to a specified waiting time is in this state.
DeadlockedNumber of threads that are in deadlock waiting to acquire object monitors.

Thread Dump

Thread Dump is basically a file that contains the state of all the threads or the snapshot of all the threads of a Java application at a particular instance of time. Application Manager's Java Runtime monitor allows you to view the current thread dump details for the monitored application by clicking the View Thread Dump button. Clicking this button will open up in a new window where you will be able to view the current thread dump details. Upon closing this window, the thread dump details will be added under the Thread Dump - History section along with the timestamp, where you can view this information any time you want.

Configuration

ParameterDescription
Configuration Information
UptimeThe uptime of the Java virtual machine.
Java Virtual MachineThe Java virtual machine implementation name.
VendorThe Java virtual machine implementation vendor.
Process IDThe process identifier is a number used by some operating system kernels to uniquely identify a process.
NameThe name representing the running Java virtual machine.
VM argumentsThe input arguments passed to the Java virtual machine which does not include the arguments to the main method.
Class pathThe Java class path that is used by the system class loader to search for class files.
Library pathThe Java library path.
Boot class pathThe boot class path that is used by the bootstrap class loader to search for class files.
JIT compilerThe name of the Just-in-time (JIT) compiler
Objects Pending for finalizationThe approximate number of objects for which finalization is pending.
Operating SystemThe name of the operating system.
ArchitectureThe operating system architecture.
ProcessorsThe number of processors available to the Java virtual machine.
Max MetaspaceThe maximum metaspace containing all other large class metadata including methods, bytecode ,constant pool etc.
Max non-heapMax Non Heap = Commit Non Heap + free Physical Memory.

Note: In case of Virtual Memory also, we consider only Free Physical Memory to calculate Max Metaspace value.

The table below lists the different JVM vendors supported by Applications Manager and the major parameters monitored by them.

Parameters MonitoredSun JVMIBM JVMJRockit JVM
Connection Time
Memory Usage
CPU Usage
CPU Load
System Memory
Process Memory
Heap Memory
Non Heap Memory
VM Statistics
Total Physical Memory
Free Physical Memory
Total Swap Space
Free Swap Space
Committed Virtual Memory
Garbage Collector- Summary
Garbage Collector - View impact for specific collector
Total Threads Started
Peak Threads
Live Threads
Runnable Threads
Blocked Threads
Waiting Threads
Timed Waiting Threads
Daemon Threads
Deadlocked
Configuration Details
JVM Actions

You can also view the real-time and historical data of any of the attributes present under the Configuration Information section in the Configuration tab. Clicking on any of these attributes will open up a new window named History Data that provides more information about these attributes. Following information can be viewed under this History Data window:

  • History Report: This tab provides historical reports of the attribute selected based on time period chosen. You can also use the Select Attribute drop-down box and view reports for other attributes.
  • Global View: This tab displays the current values of the attribute selected, across multiple monitors. To view information about other attributes present in the monitor, use the Select Attribute drop-down box and change the attribute.

If you want to view data of multiple attributes, click the Customize Columns link present at the top left corner of the window. This will take you to the Edit Global Viewscreen. In this screen, you can change the monitor type using the Filter by Monitor Type drop-down box, select the metrics to be displayed, and show monitors on a monitor basis or a monitor group basis. After you select your options, click the Show Report button to view those information in the Global View tab.

Note: If JMX connection is not being established in the machine where Applications Manager is installed, use this key and restart your application:
-Djava.rmi.server.hostname=YOUR_IP

Action

Thread Dump

Thread Dump is basically a file that contains the state of all the threads or the snapshot of all the threads of a Java application at a particular instance of time. Application Manager's Java Runtime monitor allows you to view the current thread dump details for the monitored application by clicking the View Thread Dump button. Clicking this button will open up in a new window where you will be able to view the current thread dump details. Upon closing this window, the thread dump details will be added under the Thread Dump - History section along with the timestamp, where you can view this information any time you want.

Heap Dump

Heap Dump is snapshot of all the objects that are on the heap memory and are being used by the Java application at a particular instance of time. Application Manager's Java Runtime monitor allows you to generate the current heap dumps for the monitored application by clicking the Heap Dump button. Clicking this button will generate the heap dump for the particular instance of time and create a hprof file. Upon generating heap dump, the heap dump details will be added under the Heap Dump - History section along with the timestamp, where you can view this information any time you want.

Garbage Collection

Garbage Collection in Java is a automated memory management process wherein the objects that are no longer needed or used are deleted/removed and helps to reclaim unused runtime memory. Using the Perform GC button, Applications Manager's Java Runtime monitor allows you to perform the Garbage Collection process and helps to free up memory for the monitored Java application. Once GC is performed, you can view the difference in memory for your application by clicking the View Impact button.

Useful links for reference

Loved by customers all over the world

"Standout Tool With Extensive Monitoring Capabilities"

It allows us to track crucial metrics such as response times, resource utilization, error rates, and transaction performance. The real-time monitoring alerts promptly notify us of any issues or anomalies, enabling us to take immediate action.

Reviewer Role: Research and Development

carlos-rivero
"I like Applications Manager because it helps us to detect issues present in our servers and SQL databases."
Carlos Rivero

Tech Support Manager, Lexmark

Trusted by over 6000+ businesses globally