The Node Utilization Report plugin creates a report
called "node-utilization" and creates samples for this report
from the Nodes REST API
. This report may be used to track or graph historical data of node CPU
utilization. In order for this plugin to operate correctly, the CPU utilization metric (
be reported for nodes by plugins (see Reporting State Date
) or MWM Resource Managers.
The Poll Interval controls how often samples are created for the report. It is recommended that this be set to
|High Utilization Threshold||highThreshold||Yes||Double||75||A percentage between 0-100 representing the "high" utilization threshold.|
|Low Utilization Threshold||lowThreshold||Yes||Double||25||A percentage between 0-100 representing the "low" utilization threshold.|
|Report Consolidation Duration||reportConsolidationDuration||Yes||Integer||900||The number of seconds between datapoint consolidations. See |
datapointDuration field of reports.
|Report Size||reportSize||Yes||Integer||-||The number of datapoints to keep at one time in the report. See |
reportSize field of reports.
In order for the report to be created correctly (see below), the plugin configuration must be set correctly when
the plugin is started. If it is not, the plugin configuration must be modified and the
web service (see below) must be used.
Exposed Web Services
|recreate-report||Yes||None||-||Destroys (if it exists) and recreates the node-utilization report using the current plugin configuration.|
This web service will destroy any associated samples and datapoints for the node-utilization report. Only use this
call if the reports parameters must be changed and the historical data does not need to be preserved.
Initially Created Plugins
A plugin called "node-report" will be created automatically when this plugin type is loaded. The configuration values
of this initial plugin may be changed by setting properties in the MWS configuration file. These properties are shown
in the following table along with the plugin configuration parameter they set and default values. They are shown in
precedence, meaning if multiple MWS configuration properties set a single plugin configuration parameter, the property
listed first in the table will be used if present, otherwise later properties will be used.
|MWS Config Property||Plugin Config Parameter||Default Value|
|plugins.reports.nodeUtilization.reportSize||reportSize||10080 (1 week in seconds)|
|plugins.reports.defaults.reportSize||reportSize||10080 (1 week in seconds)|
These values must be set before
the plugin type is loaded for the first time. If the values were not set correctly,
the plugin's configuration may be modified and the
web service may be called so that the report is
created with the proper values.
The first time the plugin is started, a report called "node-utilization" will be created using the plugin's
configuration parameters. Each polling iteration then performs the following functions:
- Verify that the "node-utilization" report exists
- Query MWS Nodes API version 2 for the metrics.cpuUtilization field
- Each node is categorized according to its metric value:
- If the metric value is null or missing, the node is marked as "unknown"
- If the metric value is less than (not equal to) the low threshold, the node is marked "low"
- If the metric value is greater than (not equal to) the high threshold, the node is marked "high"
- Otherwise, the node is marked "medium"
- The total number of nodes is calculated
- The average of all metric values is calculated for all nodes that are not missing the
- A sample for the "node-utilization" report is created with the data generated from the previous steps
As described in the Reporting Framework
section of the guide, the samples are consolidated at a
regular interval into datapoints, which can then be queried using the
Get Datapoints For Single Report
It is important to note that once the report is created on the first polling interval, the report will not be destroyed
or recreated until the
custom web service is called.
For the node query
, suppose that the output looked like the
The resulting sample created would contain data that looked like the following: