InfoCenter Home > 9.3: Performance servletThe performance servlet provides a way to use an HTTP request to query the performance metrics for an entire WebSphere Application Server administrative domain. The peformance servlet is used for simple end-to-end retrieval of performance data that can be consumed by any tool, provided by either IBM or a third-party vendor. Because the servlet provides the performance data via HTTP, issues such as firewalls are trivial to resolve. The performance servlet uses the Performance Monitor Interface (PMI) infrastucture to retrieve the performance information from WebSphere Application Server. This is the same infrastructure that is used by the Resource Analyzer. Therefore, it is subject to the same restrictions on the availability of data as the Resource Analyzer. The perfServletApp.ear file is located in the product_installation_root directory. The performance servlet is deployed like other servlets. To use it, deploy the servlet on a single application server instance within the domain. After the servlet is deployed, it can be invoked to retrieve performance data for the entire domain. The default URL for invoking performance servlet is http://hostname/wasPerfTool/servlet/perfservlet. When deploying the perfServletApp.ear file, when security is enabled, the security role named perfAdminRole cannot be assigned to "Everyone." Doing so causes unauthenticated errors in the administrator's console. A protected enterprise Java bean is part of the application, therefore a credential is necessary for authentication. How the performance servlet provides dataThe performance servlet provides the performance data as an XML document, as described in the provided DTD. In the XML structure, the "leaves" of the structure provide the actual observations of performance data, and the paths to the leaves provide the context. There are three types of leaves within the XML structure: ThePerfNumericInfo typeWhen each invocation of the performance servlet retrieves the performance values from PMI, some of the values are raw counters that record the number of times a specific event occurs during the lifetime of the server. If a performance observation is of the type PerfNumericInfo, the value represents the raw count of the number of times this event has occurred since the server was started. This is important to note because the analysis of a single document of data provided by the performance servlet might not be useful for determining the current load on the system. In order to determine the load during a specific interval of time, it might be necessary to apply simple statistical formulas to the data in two or more documents provided during this interval. The PerfNumericInfo type has the following attributes:
The following document fragment represents the number of loaded servlets. Note that the path providing the context of the observation is not shown. <numLoadedServlets> <PerfNumericData time="988162913175" uid="pmi1" val="132"/> </numLoadedServlets> The PerfStatInfo typeWhen each invocation of the performance servlet retrieves the performance values from PMI, some of the values are stored as statistical data. Statistical data records the number of occurrences of a specific event (as the PerfNumericInfo type does), in addition it has sum of squares, mean and total of each observation. This value is relative to when the server was started. The PerfStatInfo type has the following attributes:
The following fragment represents the response time of an object. Note that the path providing the context of the observation is not shown. <responseTime> <PerfStatInfo mean=="1211.5" num="5" sum_of_squares="3256265.0" time="9917644193057" total="2423.0" uid="pmi13"/> </responseTime> The PerfLoadInfo typeWhen each invocation of the performance servlet retrieves the performance values from PMI, some of the values are stored as a load. Loads record values as a function of time; in effect, they are averages. Again, note that this value is relative to when the server was started. The PerfLoadInfo type has the following attributes:
The following fragment represents the number of concurrent requests. Note that the path providing the context of the observation is not shown. <poolSize> <PerfLoadInfo currentValue="1.0" integral="534899.0" mean="0.9985028962051592" time="991764193057" timeSinceCreate="535701.0" uid="pmi5" </poolSize> Specifying the retrieval of dataWhen the performance servlet is first initialized, it retrieves the list of nodes and servers located within the domain in which it is deployed. Because the collection of this data is expensive, the performance servlet holds this as a cached list for performance reasons. If a new node is added to the domain or a new server is started, the performance servlet does not automatically retrieve the information about the newly created element. In order to force the servlet to refresh its configuration, the refreshConfig parameter must be added to the invocation, as follows: http://servlet-url?refreshConfig=true By default, the performance servlet collects all of the performance data across a WebSphere domain. However, it is possible to limit the data returned by the servlet to either a specific node, server, or PMI module.
In order to limit the data collection to the TradeApp server that is located on the host rjones, invoke the following URL:
http://servlet-url?Node=rjones&Server=TradeApp The servlet can limit the information it provides to a specific PMI module by using the module parameter. Multiple modules can be requested from the following Web site: http://servlet-url?Module=beanModule+jvmRuntimeModule. For example, in order to limit the data collection to the beanModule on all servers and on all nodes, invoke the following URL: http://servlet-url?Module=beanModule In order to limit the data collection to the beanModule on all servers on the node rjones, invoke the following URL: http://servlet-url?Node=rjones&Module=beanModule In order to limit the data collection to the beanModule on the server TradeApp on the node rjones, invoke the following URL: http://servlet-url?Node=rjones&Server=TradeApp&Module=beanModule> |
| ||||||||||||||||||||||||||||||||||||||||||||||
|