Resource Metrics

This document provides an overview of the metrics collected by OpenNebula’s default probes for each resource type and explains how this data is utilized within the system.

Virtual Machine

The monitoring probes gather information attributes and insert them in the VM template. This information is mainly used for:

  • Monitoring the status of the VM.
  • Gathering the resource usage data of the VM.

In general, you can find the following monitoring information for a VM. Note that each hypervisor may include additional attributes:

KeyDescription
IDID of the VM in OpenNebula.
UUIDUnique ID, must be unique across all Hosts.
MONITORBase64 encoded monitoring information (see details below).

The MONITOR information includes the following data:

KeyDescription
TIMESTAMPTimestamp of the measurement.
CPUPercentage of 1 CPU consumed (two fully consumed CPUs is 2.0).
MEMORYMEMORY consumption in kilobytes.
DISKRDBYTESAmount of bytes read from disk.
DISKRDIOPSNumber of IO read operations.
DISKWRBYTESAmount of bytes written to disk.
DISKWRIOPSNumber of IO write operations.
NETRXReceived bytes from the network.
NETTXSent bytes to the network.

The metrics above are directly read from and stored in the monitoring database.

Additionally, the following derived metrics are calculated from the stored metrics and used for forecasting. These derived metrics are not stored in the database but are computed on-demand:

KeyDescription
NETRX_BWNetwork received bandwidth (rate of change of NETRX).
NETTX_BWNetwork transmitted bandwidth (rate of change of NETTX).
DISKRD_BWDisk read bandwidth (rate of change of DISKRDBYTES).
DISKWR_BWDisk write bandwidth (rate of change of DISKWRBYTES).
DISKRDIOPS_BWRate of change of disk read IOPS.
DISKWRIOPS_BWRate of change of disk write IOPS.

Host

The monitoring probes gather information attributes and insert them in the Host template. This information is mainly used for:

  • Monitoring the status of the Host to detect any error condition.
  • Gathering the configuration of the Host (e.g., capacity, PCI devices, or NUMA nodes). This information is used to control VM resource assignments.
  • Creating placement constraints for allocation of VMs, see more details here.

In general, you can find the following monitoring information in a Host. Note that each hypervisor may include additional attributes:

KeyDescription
HYPERVISORName of the hypervisor of the Host, useful for selecting the Hosts with a specific technology.
ARCHArchitecture of the Host CPUs, e.g., x86_64.
MODELNAMEModel name of the Host CPU, e.g., Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz.
CPUSPEEDSpeed in MHz of the CPUs.
HOSTNAMEAs returned by the hostname command.
VERSIONThis is the version of the monitoring probes. Used to control local changes and the update process.
MAX_CPUNumber of CPUs multiplied by 100. For example, a 16-core machine will have a value of 1600.
The value of RESERVED_CPU will be subtracted from the information reported by the
monitoring system. This value is displayed as TOTAL CPU by the
onehost show command under the HOST SHARE section.
MAX_MEMMaximum memory that can be used for VMs. It is advised to discount the memory
used by the hypervisor using RESERVED_MEM. This value is subtracted from the memory
amount reported. The value is displayed as TOTAL MEM by the onehost show
command under the HOST SHARE section.
MAX_DISKTotal space in megabytes in the DATASTORE LOCATION.
USED_CPUPercentage of used CPU multiplied by the number of cores. This value is displayed
as USED CPU (REAL) by the onehost show command under the HOST SHARE section.
USED_MEMORYMemory used, in kilobytes. This value is displayed as USED MEMORY (REAL)
by the onehost show command under the HOST SHARE section.
USED_DISKUsed space in megabytes in the DATASTORE LOCATION.
FREE_CPUPercentage of idling CPU multiplied by the number of cores. For example,
if 50% of the CPU is idling in a 4-core machine, the value will be 200.
FREE_MEMORYAvailable memory for VMs at that moment, in kilobytes.
FREE_DISKFree space in megabytes in the DATASTORE LOCATION.
CPU_USAGETotal CPU allocated to VMs running on the Host as requested in CPU
in each VM template. This value is displayed as USED CPU (ALLOCATED)
by the onehost show command under the HOST SHARE section.
MEM_USAGETotal MEM allocated to VMs running on the Host as requested in MEMORY
in each VM template. This value is displayed as USED MEM (ALLOCATED)
by the onehost show command under the HOST SHARE section.
DISK_USAGETotal size allocated to disk images of VMs running on the Host; computed
using the SIZE attribute of each image and considering the datastore characteristics.
NETRXReceived bytes from the network.
NETTXTransferred bytes to the network.
WILDComma-separated list of VMs running in the Host that were not launched
and are not currently controlled by OpenNebula.
ZOMBIESComma-separated list of VMs running in the Host that were launched by
OpenNebula but are not currently controlled by it.

The metrics above are directly read from and stored in the monitoring database.

Additionally, the following derived metrics are calculated from the stored metrics and used for forecasting. These derived metrics are not stored in the database but are computed on-demand:

KeyDescription
NETRX_BWNetwork received bandwidth (rate of change of NETRX).
NETTX_BWNetwork transmitted bandwidth (rate of change of NETTX).