Measurements

The Telemetry service collects meters within an OpenStack deployment. This section provides a brief summary about meters format and origin and also contains the list of available meters.

Telemetry collects meters by polling the infrastructure elements and also by consuming the notifications emitted by other OpenStack services. For more information about the polling mechanism and notifications see Data collection. There are several meters which are collected by polling and by consuming. The origin for each meter is listed in the tables below.

Note

You may need to configure Telemetry or other OpenStack services in order to be able to collect all the samples you need. For further information about configuration requirements see the Telemetry chapter in the Installation Tutorials and Guides.

Telemetry uses the following meter types:

Type

Description

Cumulative

Increasing over time (instance hours)

Delta

Changing over time (bandwidth)

Gauge

Discrete items (floating IPs, image uploads) and fluctuating values (disk I/O)


Telemetry provides the possibility to store metadata for samples. This metadata can be extended for OpenStack Compute and OpenStack Object Storage.

In order to add additional metadata information to OpenStack Compute you have two options to choose from. The first one is to specify them when you boot up a new instance. The additional information will be stored with the sample in the form of resource_metadata.user_metadata.*. The new field should be defined by using the prefix metering.. The modified boot command look like the following:

$ openstack server create --property metering.custom_metadata=a_value my_vm

The other option is to set the reserved_metadata_keys to the list of metadata keys that you would like to be included in resource_metadata of the instance related samples that are collected for OpenStack Compute. This option is included in the DEFAULT section of the ceilometer.conf configuration file.

You might also specify headers whose values will be stored along with the sample data of OpenStack Object Storage. The additional information is also stored under resource_metadata. The format of the new field is resource_metadata.http_header_$name, where $name is the name of the header with - replaced by _.

For specifying the new header, you need to set metadata_headers option under the [filter:ceilometer] section in proxy-server.conf under the swift folder. You can use this additional data for instance to distinguish external and internal users.

Measurements are grouped by services which are polled by Telemetry or emit notifications that this service consumes.

OpenStack Compute

The following meters are collected for OpenStack Compute.

Name

Type

Unit

Resource

Origin

Support

Note

Meters added in the Mitaka release or earlier

memory

Gauge

MB

instance ID

Notification

Libvirt

Volume of RAM allocated to the instance

memory.usage

Gauge

MB

instance ID

Pollster

Libvirt, vSphere,

Volume of RAM used by the instance from the amount of its allocated memory

memory.resident

Gauge

MB

instance ID

Pollster

Libvirt

Volume of RAM used by the instance on the physical machine

cpu

Cumulative

ns

instance ID

Pollster

Libvirt

CPU time used

vcpus

Gauge

vcpu

instance ID

Notification

Libvirt

Number of virtual CPUs allocated to the instance

disk.device.read.requests

Cumulative

request

disk ID

Pollster

Libvirt

Number of read requests

disk.device.write.requests

Cumulative

request

disk ID

Pollster

Libvirt

Number of write requests

disk.device.read.bytes

Cumulative

B

disk ID

Pollster

Libvirt

Volume of reads

disk.device.write.bytes

Cumulative

B

disk ID

Pollster

Libvirt

Volume of writes

disk.root.size

Gauge

GB

instance ID

Notification

Libvirt

Size of root disk

disk.ephemeral.size

Gauge

GB

instance ID

Notification

Libvirt

Size of ephemeral disk

disk.device.capacity

Gauge

B

disk ID

Pollster

Libvirt

The amount of disk per device that the instance can see

disk.device.allocation

Gauge

B

disk ID

Pollster

Libvirt

The amount of disk per device occupied by the instance on the host machine

disk.device.usage

Gauge

B

disk ID

Pollster

Libvirt

The physical size in bytes of the image container on the host per device

network.incoming.bytes

Cumulative

B

interface ID

Pollster

Libvirt

Number of incoming bytes

network.outgoing.bytes

Cumulative

B

interface ID

Pollster

Libvirt

Number of outgoing bytes

network.incoming.packets

Cumulative

packet

interface ID

Pollster

Libvirt

Number of incoming packets

network.outgoing.packets

Cumulative

packet

interface ID

Pollster

Libvirt

Number of outgoing packets

Meters added in the Newton release

cpu_l3_cache

Gauge

B

instance ID

Pollster

Libvirt

L3 cache used by the instance

memory.bandwidth.total

Gauge

B/s

instance ID

Pollster

Libvirt

Total system bandwidth from one level of cache

memory.bandwidth.local

Gauge

B/s

instance ID

Pollster

Libvirt

Bandwidth of memory traffic for a memory controller

perf.cpu.cycles

Gauge

cycle

instance ID

Pollster

Libvirt

the number of cpu cycles one instruction needs

perf.instructions

Gauge

instruction

instance ID

Pollster

Libvirt

the count of instructions

perf.cache.references

Gauge

count

instance ID

Pollster

Libvirt

the count of cache hits

perf.cache.misses

Gauge

count

instance ID

Pollster

Libvirt

the count of cache misses

Meters added in the Ocata release

network.incoming.packets.drop

Cumulative

packet

interface ID

Pollster

Libvirt

Number of incoming dropped packets

network.outgoing.packets.drop

Cumulative

packet

interface ID

Pollster

Libvirt

Number of outgoing dropped packets

network.incoming.packets.error

Cumulative

packet

interface ID

Pollster

Libvirt

Number of incoming error packets

network.outgoing.packets.error

Cumulative

packet

interface ID

Pollster

Libvirt

Number of outgoing error packets

Meters added in the Pike release

memory.swap.in

Cumulative

MB

instance ID

Pollster

Libvirt

Memory swap in

memory.swap.out

Cumulative

MB

instance ID

Pollster

Libvirt

Memory swap out

Meters added in the Queens release

disk.device.read.latency

Cumulative

ns

Disk ID

Pollster

Libvirt

Total time read operations have taken

disk.device.write.latency

Cumulative

ns

Disk ID

Pollster

Libvirt

Total time write operations have taken

Meters added in the Epoxy release

power.state

Gauge

state

instance ID

Pollster

Libvirt

virDomainState of the VM

Note

To enable the libvirt memory.usage support, you need to install libvirt version 1.1.1+, QEMU version 1.5+, and you also need to prepare suitable balloon driver in the image. It is applicable particularly for Windows guests, most modern Linux distributions already have it built in. Telemetry is not able to fetch the memory.usage samples without the image balloon driver.

Note

To enable libvirt disk.* support when running on RBD-backed shared storage, you need to install libvirt version 1.2.16+.

OpenStack Compute is capable of collecting CPU related meters from the compute host machines. In order to use that you need to set the compute_monitors option to cpu.virt_driver in the nova.conf configuration file. For further information see the Compute configuration section in the Compute chapter of the OpenStack Configuration Reference.

The following host machine related meters are collected for OpenStack Compute:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

compute.node.cpu.frequency

Gauge

MHz

host ID

Notification

CPU frequency

compute.node.cpu.kernel.time

Cumulative

ns

host ID

Notification

CPU kernel time

compute.node.cpu.idle.time

Cumulative

ns

host ID

Notification

CPU idle time

compute.node.cpu.user.time

Cumulative

ns

host ID

Notification

CPU user mode time

compute.node.cpu.iowait.time

Cumulative

ns

host ID

Notification

CPU I/O wait time

compute.node.cpu.kernel.percent

Gauge

%

host ID

Notification

CPU kernel percentage

compute.node.cpu.idle.percent

Gauge

%

host ID

Notification

CPU idle percentage

compute.node.cpu.user.percent

Gauge

%

host ID

Notification

CPU user mode percentage

compute.node.cpu.iowait.percent

Gauge

%

host ID

Notification

CPU I/O wait percentage

compute.node.cpu.percent

Gauge

%

host ID

Notification

CPU utilization

IPMI meters

Telemetry captures notifications that are emitted by the Bare metal service. The source of the notifications are IPMI sensors that collect data from the host machine.

Alternatively, IPMI meters can be generated by deploying the ceilometer-agent-ipmi on each IPMI-capable node. For further information about the IPMI agent see IPMI agent.

Warning

To avoid duplication of metering data and unnecessary load on the IPMI interface, do not deploy the IPMI agent on nodes that are managed by the Bare metal service and keep the conductor.send_sensor_data option set to False in the ironic.conf configuration file.

The following IPMI sensor meters are recorded:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

hardware.ipmi.fan

Gauge

RPM

fan sensor

Notification, Pollster

Fan rounds per minute (RPM)

hardware.ipmi.temperature

Gauge

C

temperature sensor

Notification, Pollster

Temperature reading from sensor

hardware.ipmi.current

Gauge

A

current sensor

Notification, Pollster

Current reading from sensor

hardware.ipmi.voltage

Gauge

V

voltage sensor

Notification, Pollster

Voltage reading from sensor

Note

The sensor data is not available in the Bare metal service by default. To enable the meters and configure this module to emit notifications about the measured values see the Installation Guide for the Bare metal service.

Besides generic IPMI sensor data, the following Intel Node Manager meters are recorded from capable platform:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

hardware.ipmi.node.power

Gauge

W

host ID

Pollster

Current power of the system

hardware.ipmi.node.temperature

Gauge

C

host ID

Pollster

Current temperature of the system

hardware.ipmi.node.inlet_temperature

Gauge

C

host ID

Pollster

Inlet temperature of the system

hardware.ipmi.node.outlet_temperature

Gauge

C

host ID

Pollster

Outlet temperature of the system

hardware.ipmi.node.airflow

Gauge

CFM

host ID

Pollster

Volumetric airflow of the system, expressed as 1/10th of CFM

hardware.ipmi.node.cups

Gauge

CUPS

host ID

Pollster

CUPS(Compute Usage Per Second) index data of the system

hardware.ipmi.node.cpu_util

Gauge

%

host ID

Pollster

CPU CUPS utilization of the system

hardware.ipmi.node.mem_util

Gauge

%

host ID

Pollster

Memory CUPS utilization of the system

hardware.ipmi.node.io_util

Gauge

%

host ID

Pollster

IO CUPS utilization of the system

OpenStack Image service

The following meters are collected for OpenStack Image service:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

image.size

Gauge

B

image ID

Notification, Pollster

Size of the uploaded image

image.download

Delta

B

image ID

Notification

Image is downloaded

image.serve

Delta

B

image ID

Notification

Image is served out

OpenStack Block Storage

The following meters are collected for OpenStack Block Storage:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

volume.size

Gauge

GB

volume ID

Notification

Size of the volume

snapshot.size

Gauge

GB

snapshot ID

Notification

Size of the snapshot

Meters added in the Queens release

volume.provider.capacity.total

Gauge

GB

hostname

Notification

Total volume capacity on host

volume.provider.capacity.free

Gauge

GB

hostname

Notification

Free volume capacity on host

volume.provider.capacity.allocated

Gauge

GB

hostname

Notification

Assigned volume capacity on host by Cinder

volume.provider.capacity.provisioned

Gauge

GB

hostname

Notification

Assigned volume capacity on host

volume.provider.capacity.virtual_free

Gauge

GB

hostname

Notification

Virtual free volume capacity on host

volume.provider.pool.capacity.total

Gauge

GB

hostname#pool

Notification

Total volume capacity in pool

volume.provider.pool.capacity.free

Gauge

GB

hostname#pool

Notification

Free volume capacity in pool

volume.provider.pool.capacity.allocated

Gauge

GB

hostname#pool

Notification

Assigned volume capacity in pool by Cinder

volume.provider.pool.capacity.provisioned

Gauge

GB

hostname#pool

Notification

Assigned volume capacity in pool

volume.provider.pool.capacity.virtual_free

Gauge

GB

hostname#pool

Notification

Virtual free volume capacity in pool

OpenStack File Share

The following meters are collected for OpenStack File Share:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Pike release

manila.share.size

Gauge

GB

share ID

Notification

Size of the file share

OpenStack Object Storage

The following meters are collected for OpenStack Object Storage:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

storage.objects

Gauge

object

storage ID

Pollster

Number of objects

storage.objects.size

Gauge

B

storage ID

Pollster

Total size of stored objects

storage.objects.containers

Gauge

container

storage ID

Pollster

Number of containers

storage.objects.incoming.bytes

Delta

B

storage ID

Notification

Number of incoming bytes

storage.objects.outgoing.bytes

Delta

B

storage ID

Notification

Number of outgoing bytes

storage.containers.objects

Gauge

object

storage ID/container

Pollster

Number of objects in container

storage.containers.objects.size

Gauge

B

storage ID/container

Pollster

Total size of stored objects in container

Ceph Object Storage

In order to gather meters from Ceph, you have to install and configure the Ceph Object Gateway (radosgw) as it is described in the Installation Manual. You also have to enable usage logging in order to get the related meters from Ceph. You will need an admin user with users, buckets, metadata and usage caps configured.

In order to access Ceph from Telemetry, you need to specify a service group for radosgw in the ceilometer.conf configuration file along with access_key and secret_key of the admin user mentioned above.

The following meters are collected for Ceph Object Storage:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

radosgw.objects

Gauge

object

storage ID

Pollster

Number of objects

radosgw.objects.size

Gauge

B

storage ID

Pollster

Total size of stored objects

radosgw.objects.containers

Gauge

container

storage ID

Pollster

Number of containers

radosgw.api.request

Gauge

request

storage ID

Pollster

Number of API requests against Ceph Object Gateway (radosgw)

radosgw.containers.objects

Gauge

object

storage ID/container

Pollster

Number of objects in container

radosgw.containers.objects.size

Gauge

B

storage ID/container

Pollster

Total size of stored objects in container

Note

The usage related information may not be updated right after an upload or download, because the Ceph Object Gateway needs time to update the usage properties. For instance, the default configuration needs approximately 30 minutes to generate the usage logs.

OpenStack Identity

The following meters are collected for OpenStack Identity:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

identity.authenticate.success

Delta

user

user ID

Notification

User successfully authenticated

identity.authenticate.pending

Delta

user

user ID

Notification

User pending authentication

identity.authenticate.failure

Delta

user

user ID

Notification

User failed to authenticate

OpenStack Networking

The following meters are collected for OpenStack Networking:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

bandwidth

Delta

B

label ID

Notification

Bytes through this l3 metering label

VPN-as-a-Service (VPNaaS)

The following meters are collected for VPNaaS:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

network.services.vpn

Gauge

vpnservice

vpn ID

Pollster

Existence of a VPN

network.services.vpn.connections

Gauge

ipsec_site_connection

connection ID

Pollster

Existence of an IPSec connection

Firewall-as-a-Service (FWaaS)

The following meters are collected for FWaaS:

Name

Type

Unit

Resource

Origin

Note

Meters added in the Mitaka release or earlier

network.services.firewall

Gauge

firewall

firewall ID

Pollster

Existence of a firewall

network.services.firewall.policy

Gauge

firewall_policy

firewall ID

Pollster

Existence of a firewall policy