PMI data classification

This topic describes the Performance Monitoring Infrastructure (PMI) data classification.

The static component consists of a name, ID and other descriptive attributes to identify the data. The dynamic component contains information that changes over time, such as the current value of a counter and the time stamp associated with that value.

The PMI data can be one of the following statistic types (these statistic types follow the J2EE 1.4 Performance Data Framework):

Table 1. PMI data statistic types . PMI must be enabled before the server starts. If PMI is enabled after the server is started, the server needs to be restarted to start the PMI.
Statistic type Description Example
CountStatistic Represents a running count of a given value. Number of Servlet requests
AverageStatistic Represents a simple average. Keeps track of total, count, min, and max. The average can be derived by total and count. (This type is WebSphere® extension to J2EE Performance Data Framework) Average HttpSession size in bytes.
TimeStatistic Same as AverageStatistic, except that the unit of measure is milliseconds or seconds. Average Servlet response time.
RangeStatistic Represents a time-weighted average. Keeps track of current, low water mark, high water mark, time-weight total, and integral. Number of concurrent Servlet requests.
BoundedRangeStatistic Same as RangeStatistic, with lower bound and upper bound. JDBC connection pool size.
The following diagram shows the statistic class hierarchy:
PMI API data classes
Statistic
ID
A unique ID that identifies the Statistic within the given Stats (WebSphere PMI extension)
name
Statistic name
unit
Unit of measurement for the statistic
description
Textual description of the statistic
startTime
Time the first measurement was taken
lastSampleTime
Time the most recent measurement was taken
CountStatistic
count
Count since the measurement started
DoubleStatistic
count
Value since the measurement started
AverageStatistic
(WebSphere PMI extension. This is the same as the TimeStatistic defined in J2EE 1.4, except that it is used to track non-time-related measurements like byte size, etc.)
count
Number of measurements
total
Sum of the values of all the measurements
min
Minimum value
max
Maximum value
BoundaryStatistic
upperBound
Upper limit of this attribute
lowerBound
Lower limit of this attribute
RangeStatistic
current
Current® value of this attribute
lowWaterMark
Lowest value of this attribute
upperWaterMark
Highest value of this attribute
integral
Time-weighted sum of this attribute [time-weighted average = integral / (lastSampleTime - startTime] (WebSphere PMI extension)
In WebSphere Application Server, Version 4, PMI data was classified with the following types:
  • Numeric: Maps to CountStatistic in the J2EE 1.4 specification. Holds a single numeric value that can either be a long or a double. This data type is used to keep track of simple numeric data, such as counts.
  • Stat: Holds statistical data on a sample space, including the number of elements in the sample set, their sum, and sum of squares. You can obtain the mean, variance, and standard deviation of the mean from this data.
  • Load: Maps to the RangeStatistic or BoundedRangeStatistic, based on J2EE 1.4 specification. This data type keeps track of a level as a function of time, including the current level, the time that level was reached, and the integral of that level over time. From this data, you can obtain the time-weighted average of that level. For example, this data type is used in the number of active threads and the number of waiters in a queue.

These PMI data types continue to be supported through the PMI client API. Statistical data types are supported through both the PMI API and Java™ Management Extension (JMX) API.

In WebSphere Application Server, Version 4 and Version 5, CountStatistic data require a low monitoring level, and TimeStatistic data require a medium monitoring level. RangeStatistic and BoundedRangeStatistic require a high monitoring level. There are a few counters that are exceptions to this rule. The average method response time, the total method calls, and active methods counters require a high monitoring level. The Java virtual machine counters, SerializableSessObjSize, and data tracked for each individual method (method level data) require a maximum monitoring level. Also, the level maximum enables synchronized update to all the statistic types.

WebSphere Application Server Versions 6.0 and later deprecate the monitoring levels (Low, Medium, High, and Max) and introduces fine-grained control to enable/disable statistics individually. The fine-grained control is available under the custom option. Refer to Enabling PMI using the administrative console for more details.

In order to reduce the monitoring overhead, updates to CountStatistic, DoubleStatistic, AverageStatistic, and TimeStatistic are not synchronized. Since this data tracks the total and average, the extra accuracy is generally not worth the performance cost. RangeStatistic and BoundedRangeStatistic are very sensitive; therefore, they are always synchronized. To enable synchronized updates for all the statistic types enable the Use sequential update option. Refer to Enabling PMI using the administrative console for details.