0.31: What is the Performance Monitor?

The Performance Monitor is a tool that helps administrators collect and display performance data from servers.

The Performance Monitor uses the Performance Monitoring Infrastructure (PMI). PMI is a set of packages and libraries designed to assist with gathering, delivering, processing, and displaying performance data in WebSphere administrative server domains. PMI follows a client/server architecture. In PMI terms, a server is any application that uses the PMI API to collect performance data; servers can include application servers, HTTP servers, and Java applications. A client is an application that receives performance data from a server or servers and processes the data; clients can include graphical user interfaces (GUIs) that display performance data in real time, applications that monitor performance data and trigger different events according to the current values of the data, or any other application that needs to receive and process performance data.

PMI classifies performance data into the following four types:

Numeric data
A single numeric value such as an integer, a long, or a double used to represent data such as counts and sizes.
Statistical data on a sample space
The number of elements in a sample set, the sum of the elements, and the sum of squares. These values can be used to obtain the mean, the variance, and the standard deviation of the mean. An example of statistical data is the response time for each invocation of an enterprise bean.
Load data
Data that monitors a value as a function of time. Example uses include tracking the number of threads or the number of service requests in a queue. Load data tracks the current value, the time the value was reached, and the integral over time of the value. These values can be used to obtain the weighted average for the level over a period of time. An example of load data is the average size of a database connection pool during a specified time interval.
Group data
A collection of performance data intended to be used by groups. It enables servers to create sets of performance data that can be retrieved by clients with a single call.

Data is organized by modules; each module has a configuration file in extensible markup language (XML) format that determines its organization. The configuration file lists a unique identifier for each piece of performance data in the module. A client can use the data's unique ID to retrieve the data's static information; the server then sends the dynamic information associated with that data to the client. A server can track many instances of each type of performance data--for example, a number of pieces of performance data tracking the average response time of bean methods. In this case, each piece of performance data shares the same ID, and the server sends additional identifying information (for example, the bean's home name) along with the performance data so that clients can distinguish among the different instances.

You can set performance monitoring levels from the administrative console. You can retrieve the performance data from Resource Analyzer.