Performance data classification

Performance Monitoring Infrastructure provides server-side data collection and client-side API to retrieve performance data. Performance data includes two components: static and dynamic.

The static component consists of a name, ID, and other descriptive attributes that 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 these statistical types defined in the JSR-077 specification:

In general, CountStatistic data requires a low monitoring level and TimeStatistic data requires a medium monitoring level. RangeStatistic and BoundedRangeStatistic require a high monitoring level.

There are a few counters that are exceptions to this rule:

PMI statistical data types

In previous versions, PMI data was classified with these types:

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

The TimeStatistic type tracks many counter samples and then returns the sum, count, and average of the samples. For example it can provide an average method response time. Given the nature of this statistic type, it is also used to track non-time related counters, such as average read and write size. You can call the getUnit method on the data configuration information to learn the unit for the counter.

To reduce the impact on performance, numeric and stat data are not synchronized, because this data tracks the total and average values. Load data is very sensitive. Therefore, load counters are always synchronized. In addition, when the monitoring level of a module is set to max, all numeric data is also synchronized to guarantee accurate values. However, setting a monitoring level to max can have a negative impact on performance. As a result, it is recommended that you use the max setting only if it is necessary.