Agents Administration - Tests
 

Configuration of JvmMemoryDetailsTest

This test monitors every memory type on the JVM and reports how efficiently the JVM utilizes the memory resources of each type.

Note:

  • For this test to report detailed diagnostics, the target Java application should use the JDK/JRE offered by one of the following vendors only: Oracle, Sun, OpenJDK.

  • If the target Java application is running on an AIX system using an IBM JRE/JDK, then, this test will not report detailed diagnostics. To enable the test to report DD, a MAT plugin is required. This plugin needs to be downloaded and extracted into the target AIX host. Once this is done, then the next time the eG agent runs this test, it takes the help of the plugin to read the usage statistics of object types from the heap dump file, and finally reports these metrics to the eG manager. To know how to install and configure the MAT plugin, refer to the Monitoring Java Applications document.

  • This test can provide detailed diagnosis information for only those monitored Java applications that use JRE 1.6 or higher.

  • This test can run in an agent-based manner only.

The default parameters associated with this test are as follows:

  • The TEST PERIOD list box helps the user to decide how often this test needs to be executed.

  • In the HOST text box, the host name of the server for which the test is to be configured has to be specified.
  • The port number at which the specified HOST listens should be specified in the PORT listbox.

  • This test can extract metrics from the Java application using either of the following mechanisms:

    • Using SNMP-based access to the Java runtime MIB statistics;

    • By contacting the Java runtime (JRE) of the application via JMX

    To configure the test to use SNMP, select the SNMP option. On the other hand, choose the JMX option to configure the test to use JMX instead. By default, the JMX option is chosen in the MODE text box.

  • For the eG agent to collect metrics from the target IBM WebSphere Liberty server, the local connector should be enabled on the target server. Once the connector is enabled, a com.ibm.ws.jmx.local.address file will be created in the ${server.output.dir}/logs/state folder. The eG agent uses this file to connect to the target server and collect the required metrics from it. Therefore, specify the exact path to this file in the SERVICE URL PATH text box. For example, in case of Windows environments, the Service URL Path can be C:\wlp\usr\servers\server1\logs\state and in case of Linux environments, the SERVICE URL PATH can be /opt/wlp/ur/servers/server1/logs/state.

  • The SNMPPORT parameter appears only if the MODE is set to SNMP. Here specify the port number through which the server exposes its SNMP MIB. Ensure that you specify the same port you configured in the management.properties file in the <JAVA_HOME>\jre\lib\management folder used by the target application.

  • The SNMPVERSION parameter appears only if the MODE is set to SNMP. The default selection in the SNMPVERSION list is v1. However, for this test to work, you have to select SNMP v2 or v3 from this list, depending upon which version of SNMP is in use in the target environment.

  • The SNMPCOMMUNITY parameter appears only if the MODE is set to SNMP. Here, specify the SNMP community name that the test uses to communicate with the mail server. The default is public. This parameter is specific to SNMP v1 and v2 only. Therefore, if the SNMP version chosen is v3, then this parameter will not appear.

  • The USERNAME parameter appears only when v3 is selected as the SNMPVERSION. SNMP version 3 (SNMPv3) is an extensible SNMP Framework which supplements the SNMPv2 Framework, by additionally supporting message security, access control, and remote SNMP configuration capabilities. To extract performance statistics from the MIB using the highly secure SNMP v3 protocol, the eG agent has to be configured with the required access privileges - in other words, the eG agent should connect to the MIB using the credentials of a user with access permissions to be MIB. Therefore, specify the name of such a user against this parameter. 

  • The CONTEXT parameter appears only when v3 is selected as the SNMPVERSION. An SNMP context is a collection of management information accessible by an SNMP entity. An item of management information may exist in more than one context and an SNMP entity potentially has access to many contexts. A context is identified by the SNMPEngineID value of the entity hosting the management information (also called a contextEngineID) and a context name that identifies the specific context (also called a contextName). If the USERNAME provided is associated with a context name, then the eG agent will be able to poll the MIB and collect metrics only if it is configured with the context name as well. In such cases therefore, specify the context name of the USERNAME in the CONTEXT text box. By default, this parameter is set to none.

  • Specify the password that corresponds to the above-mentioned USERNAME in the AUTHPASS text box. This parameter once again appears only if the SNMPVERSION selected is v3.

  • Confirm the AUTHPASS by retyping it in the CONFIRM PASSWORD text box.

  • The AUTHTYPE parameter too appears only if v3 is selected as the SNMPVERSION. From the AUTHTYPE list box, choose the authentication algorithm using which SNMP v3 converts the specified USERNAME and PASSWORD into a 32-bit format to ensure security of SNMP transactions. You can choose between the following options:

    • MD5 - Message Digest Algorithm

    • SHA - Secure Hash Algorithm
  • The ENCRYPTFLAG appears only when v3 is selected as the SNMPVERSION. By default, the eG agent does not encrypt SNMP requests. Accordingly, the ENCRYPTFLAG is set to No by default. To ensure that SNMP requests sent by the eG agent are encrypted, select the Yes option.

  • If the ENCRYPTFLAG is set to Yes, then you will have to mention the encryption type by selecting an option from the ENCRYPTTYPE list. SNMP v3 supports the following encryption types:

    • DES - Data Encryption Standard

    • AES - Advanced Encryption Standard
  • Specify the encryption password in the ENCRYPTPASSWORD text box.

  • Confirm the encryption password by retyping it in the CONFIRM PASSWORD text box.

  • Specify the duration (in seconds) for which this test should wait for a response from the target Java application. If there is no response from the target beyond the configured duration, the test will timeout. By default, the TIMEOUT parameter is set to 240 seconds.

  • By default, in an IT environment, all data transmission occurs over UDP. Some environments however, may be specifically configured to offload a fraction of the data traffic - for instance, certain types of data traffic or traffic pertaining to specific components - to other protocols like TCP, so as to prevent UDP overloads. In such environments, you can instruct the eG agent to conduct the SNMP data traffic related to the monitored target over TCP (and not UDP). For this, set the DATA OVER TCP flag to Yes. By default, this flag is set to No.

  • The USE SUDO parameter is of significance to Unix platforms only. By default, this parameter is set to false. This indicates that, by default, JvmMemoryDetailsTest test will report the detailed diagnosis for the Used memory measure of each memory type being monitored by executing the /usr/bin/jmap command. However, in some highly secure environments, this command cannot be executed directly as the eG agent install user is different from the user privileged to access the target Java application. In such cases, do the following:

    • Edit the SUDOERS file on the target host and append an entry of the following format to it:

      <eG_agent_install_user> ALL=(ALL) NOPASSWD:<Command_with_path>

    • For instance, if the eG agent install user is eguser, then the entries in the SUDOERS file should be:

      eguser ALL=(ALL) NOPASSWD: /usr/bin/jmap

    • Finally, save the file.

  • By default, the HEAP ANALYSIS flag is set to Off. This implies that the test will not provide detailed diagnosis information for memory usage, by default. To trigger the collection of detailed measures, set this flag to On.

    Note:

    • If heap analysis is switched On, then  the eG agent will be able to collect detailed measures only if the Java application being monitored uses JDK 1.6 or higher.

    • Heap analytics / detailed diagnostics will be provided only if the Java application being monitored supports Oracle Hotspot.

  • The JAVA HOME parameter appears only when the HEAP ANALYSIS flag is switched On. Here, provide the full path to the install directory of JDK 1.6 or higher on the application host. For example, c:\JDK1.6.0.

  • The detailed diagnosis of this test, if enabled, lists the Java classes/packages that are using the pool memory and the amount of memory used by each class/package. To enable administrators to focus on the memory consumed by those classes/packages that are specific to their application, without being distracted by the memory consumption of basic Java classes/packages, the test, by default, excludes some common Java packages from the detailed diagnosis.  The packages excluded by default are as follows:

    • All packages that start with the string java or javax - in other words, java.* and javax.*.

    • Arrays of primitive data types - eg., [Z, which is a one-dimensional array of type boolean, [[B, which is a 2-dimensional array of type byte, etc.

    • A few class loaders - eg., <symbolKlass>, <constantPoolKlass>, <instanceKlassKlass>, <constantPoolCacheKlass>, etc.

    This is why, the EXCLUDE PACKAGES parameter is by default configured with the packages mentioned above. You can, if required, append more packages or patterns of packages to this comma-separated list. This will ensure that such packages also are excluded from the detailed diagnosis of the test. Note that the EXCLUDE PACKAGES parameter is of relevance only if the HEAP ANALYSIS flag is set to ‘Yes’.

  • By default, the INCLUDE PACKAGES parameter is set to all. This indicates that, by default, the detailed diagnosis of the test (if enabled) includes all classes/packages associated with the monitored Java application, regardless of whether they are basic Java packages or those that are crucial to the functioning of the application. However, if you want the detailed diagnosis to provide the details of memory consumed by a specific set of classes/packages alone, then, provide a comma-separated list of classes/packages to be included in the detailed diagnosis in the INCLUDE PACKAGES text box. Note that the INCLUDE PACKAGES parameter is of relevance only if the HEAP ANALYSIS flag is set to ‘Yes’.

  • The DD FREQUENCY refers to the frequency with which detailed diagnosis measures are to be generated for this test. The default is 1:1. This indicates that, by default, detailed measures will be generated every time this test runs, and also every time the test detects a problem. You can modify this frequency, if you so desire. Also, if you intend to disable the detailed diagnosis capability for this test, you can do so by specifying none against this parameter.

  • To make diagnosis more efficient and accurate, the eG Enterprise suite embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

    The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

    • The eG manager license should allow the detailed diagnosis capability.

    • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.

  • If multiple components of the same component type are awaiting configuration, then an APPLY TO OTHER COMPONENTS check box will appear in this page. Clicking on this check box will allow you to apply the configuration to all/selected components of that type.

  • Once the necessary values have been provided, clicking on the UPDATE button will register the changes made.

When changing the configuration for specific servers, a “*” beside the text box corresponding to the parameter signifies that these values have to be manually configured by the user. The parameter values that require to be configured will typically be prefixed with a “$“ or contain a series of “*”. A value of "none" in the parameter value indicates that the corresponding parameter value can be changed if required.