GlassFish Servlet Instance Statistics Test

Whenever users to a web application deployed on the GlassFish Enterprise server complain of a slowdown, administrators need to instantly determine what is causing the slowdown. The GlassFish Servlet Statistics test will enable administrators to figure out if the servlets used by the problem application is contributing to the slowdown or not. If so, then, administrators can use the GlassFish Servlet Instance Statistics test to isolate that servlet, which is the processing bottleneck. This test auto-discovers the servlets used by each web application that is installed on the GlassFish server, and reports the processing time of and errors experienced by each servlet, so that problematic servlets can be quickly and accurately isolated, and the root-cause of the problems investigated.

By default, this test monitors only those servlets that are part of a servlet group. To configure servlet groups, click on the 'Click here' hyperlink above the parameters of this test.

Target of the test : A GlassFish server

Agent deploying the test : An internal/remote agent

Outputs of the test : One set of results for each servlet group/servlet used by each web application deployed on the GlassFish Enterprise server being monitored.

Configurable parameters for the test
Parameters Description

Test Period

How often should the test be executed.

Host

The host for which the test is to be configured.

Port

The port number at which the specified host listens

JMX Remote Port

To collect metrics from a GlassFish Enterprise server, the eG agent monitoring that server should be configured to use JMX to connect to the JRE used by the server and pull out the metrics of interest. By default, JMX support is enabled for the JRE used by the GlassFish Enterprise Server. The JMX connector listens on port 8686 by default. Therefore, type 8686 as the JMX Remote Port. If JMX listens on a different port in your environment, then specify the same here. To know the port at which JMX listens, open the domain.xml file in the <GLASSFISH_INSTALL_DIR>\Sun\AppServer\domains\domain1\config directory and look for the code block shown below:

<jmx-connector accept-all="false" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false">

The port number specified against the Port parameter in the code block above refers to the JMX Remote Port.

JMX User,
JMX Password, and Confirm Password

By default, the JMX connector on the GlassFish Enterprise Server requires authentication. To enable the eG agent to use JMX therefore, you need to configure the agent with the credentials of a user who is authorized to use JMX. Typically, the GlassFish administrator has the right to use JMX. You can hence configure the JMX User and JMX Password parameters with the credentials of the administrator. However, if you prefer not to expose the credentials of an administrator owing to security considerations, you can use the credentials of any other user with access rights to JMX. To know the name of such a user, open the domain.xml file in the <GLASSFISH_INSTALL_DIR>\Sun\AppServer\domains\domain1\config directory and look for the code block shown below:

<jmx-connector accept-all="false" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false">

The user name specified against the auth-realm-name parameter in the code block above can be configured as the JMX User, and the Password of that user can be specified against JMX Password. Confirm the JMX Password you specify by retyping that password in the Confirm Password text box.

JNDIName

The JNDIName is a lookup name for connecting to the JMX connector. By default, this is jmxrmi. If you have registered the JMX connector in the RMI registry using a different lookup name, then you can change this default value to reflect the same. 

JMX Provider

This test uses a JMX Provider to access the MBean attributes of the GlassFish Enterprise server and collect metrics. Specify the package name of this JMX Provider here. By default, this is set to com.sun.jmx.remote.protocol.

Timeout

Specify the duration (in seconds) for which this test should wait for a response from the GlassFish Enterprise server. If there is no response from the server beyond the configured duration, the test will timeout. By default, this is set to 240 seconds. 

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Requests processed

Indicates the number of requests to this application that were processed by this servlet group/servlet during the last measurement period.

Number

This measure is a good indicator of the load on each servlet. Compare the value of this measure across the servlets of an application to identify which servlet is experiencing very high load.

Avg processing time

Indicates the time taken by this servlet group/servlet to process requests.

Secs

A low value is desired for this measure. A consistent rise in the value of this measure could indicate a processing bottleneck, which in turn may affect application performance. 

Compare the value of this measure across servlets (associated with a particular application) to know which servlet processing requests too slowly.

Maximum time

Indicates the maximum time taken by this servlet group/servlet to process requests.

Secs

 

Servlet errors

Indicates the number of error responses that were sent by this servlet group/servlet during the last measurement period.

Number

This count includes the following:

  • The number of requests for which responses with response code that is greater than or equal to 400 were sent;
  • The number of requests for which a response could not be sent at all.  

Ideally, the value of this measure should be 0.

Error

Indicates the percentage of error responses that were sent by this servlet group/servlet during the last measurement period

Percent

Ideally, the value of this measure should be 0.