openstack-manuals/doc/admin-guide-cloud/telemetry/section_telemetry-measureme...

322 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="section_telemetry-measurements">
<title>Measurements</title>
<para>The Telemetry module collects metrics within an OpenStack
deployment. This section provides a brief summary about metrics
format and origin and also contains the list of available
meters.</para>
<para>Telemetry collects metrics 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
<xref linkend="section_telemetry-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.</para>
<note>
<para>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
<link xlink:href=
"http://docs.openstack.org/juno/install-guide/install/apt/content/ch_ceilometer.html">
Telemetry chapter</link> in the <citetitle>OpenStack Installation
Guide</citetitle>. Also check the <link xlink:href=
"http://docs.openstack.org/developer/ceilometer/install/manual.html">
Telemetry manual installation</link> description.</para>
</note>
<para>Telemetry uses the following metric types:</para>
<table rules="all">
<caption>Telemetry metric types</caption>
<col width="25%"/>
<col width="75%"/>
<thead>
<tr>
<td>Type</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>Cumulative</td>
<td>Increasing over time (instance hours)</td>
</tr>
<tr>
<td>Delta</td>
<td>Changing over time (bandwidth)</td>
</tr>
<tr>
<td>Gauge</td>
<td>Discrete items (floating IPs, image uploads) and
fluctuating values (disk I/O)</td>
</tr>
</tbody>
</table>
<para>Telemetry provides the possibility to store metadata for
samples. This metadata can be extended for OpenStack Compute and
OpenStack Object Storage.</para>
<para>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
<literal>resource_metadata.user_metadata.*</literal>. The new
field should be defined by using the prefix <literal>metering.</literal>.
The modified boot command look like the following:
<screen><prompt>$</prompt> <userinput>nova boot --meta metering.custom_metadata=a_value my_vm</userinput></screen></para>
<para>The other option is to set the <option>reserved_metadata_keys</option>
to the list of metadata keys that you would like to be included
in <literal>resource_metadata</literal> of the instance related
samples that are collected for OpenStack Compute. This option is
included in the <literal>DEFAULT</literal> section of the
<filename>ceilometer.conf</filename> configuration file.</para>
<para>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 <literal>resource_metadata</literal>.
The format of the new field is <literal>
resource_metadata.http_header_$name</literal>, where <literal>
$name</literal> is the name of the header with <literal>-</literal>
replaced by <literal>_</literal>.</para>
<para>For specifying the new header, you need to set <option>
metadata_headers</option> option under the <literal>[filter:ceilometer]</literal>
section in <filename>proxy-server.conf</filename> under the
<literal>swift</literal> folder. You can use this additional data
for instance to distinguish external and internal users.</para>
<para>The list of measurements is grouped by services which
are polled by Telemetry or emits notifications that this module
consumes.</para>
<note>
<para>The Telemetry module supports storing notifications as
events. This functionality was added later, therefore the list
of meters still contains existence type and other event related
items. The proper way of using Telemetry is to configure it to
use the event store and turn off the collection of the event
related metrics. For further information about events see <link xlink:href=
"http://docs.openstack.org/developer/ceilometer/events.html">Events
section</link> in the Telemetry documentation. For further
information about how to turn on and off meters see
<xref linkend="section_telemetry-pipeline-configuration"/>. Please
also note that currently no migration is available to move the already
existing event type samples to the event store.</para>
</note>
<section xml:id="section_telemetry-compute-metrics">
<title>OpenStack Compute</title>
<para>The following meters are collected for OpenStack Compute:</para>
<xi:include href="tables/ceilometer-measurements-nova.xml"/>
<para>The Telemetry module supports to create new meters by using
transformers. For more details about transformers see
<xref linkend="section_telemetry-pipeline-transformers"/>. Among the metrics
gathered from Libvirt and HyperV there are a few ones, which are generated from
other meters. The list of meters that are created by using the
<literal>rate_of_change</literal> transformer from the above table is
the following:</para>
<itemizedlist>
<listitem>
<para>cpu_util</para>
</listitem>
<listitem>
<para>disk.read.requests.rate</para>
</listitem>
<listitem>
<para>disk.write.requests.rate</para>
</listitem>
<listitem>
<para>disk.read.bytes.rate</para>
</listitem>
<listitem>
<para>disk.write.bytes.rate</para>
</listitem>
<listitem>
<para>disk.device.read.requests.rate</para>
</listitem>
<listitem>
<para>disk.device.write.requests.rate</para>
</listitem>
<listitem>
<para>disk.device.read.bytes.rate</para>
</listitem>
<listitem>
<para>disk.device.write.bytes.rate</para>
</listitem>
<listitem>
<para>network.incoming.bytes.rate</para>
</listitem>
<listitem>
<para>network.outgoing.bytes.rate</para>
</listitem>
<listitem>
<para>network.incoming.packets.rate</para>
</listitem>
<listitem>
<para>network.outgoing.packets.rate</para>
</listitem>
</itemizedlist>
<note>
<para>To enable the libvirt <literal>memory.usage</literal> 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 <literal>memory.usage</literal> samples without
the image balloon driver.</para>
</note>
<para>OpenStack Compute is capable of collecting <literal>CPU</literal>
related metrics from the compute host machines. In order to use that
you need to set the <option>compute_monitors</option> option to
<literal>ComputeDriverCPUMonitor</literal> in the <filename>nova.conf</filename>
configuration file. For further information see the Compute configuration
section in the <link xlink:href=
"http://docs.openstack.org/trunk/config-reference/content/list-of-compute-config-options.html">
Compute chapter</link> of the <citetitle>OpenStack Configuration
Reference</citetitle>.</para>
<para>The following host machine related meters are collected
for OpenStack Compute:</para>
<xi:include href="tables/ceilometer-measurements-nova-host.xml"/>
</section>
<section xml:id="section_telemetry-ironic-metrics">
<title>Bare metal module for OpenStack</title>
<para>Telemetry captures notifications that are emitted by the
Bare metal module for OpenStack. The source of the notifications
are IPMI sensors that collect data from the host machine.</para>
<note>
<para>The sensor data is not available in the Bare metal module
by default. To enable the meters and configure this module to
emit notifications about the measured values see the <link xlink:href=
"http://docs.openstack.org/developer/ironic/deploy/install-guide.html">
Installation Guide</link> for the Bare metal service.</para>
</note>
<para>The following meters are recorded for the Bare metal module:</para>
<xi:include href="tables/ceilometer-measurements-ironic.xml"/>
</section>
<section xml:id="section_telemetry-ipmi-metrics">
<title>IPMI based meters</title>
<para>Another way of gathering IPMI based data is to use IPMI
sensors independently from the Bare metal module's components.
Same meters as <xref linkend="section_telemetry-ironic-metrics"/>
could be fetched except that origin is <literal>Pollster</literal>
instead of <literal>Notification</literal>.
</para>
<para>You need to deploy the
<systemitem class="service">ceilometer-agent-ipmi</systemitem>
on each IPMI-capable node in order to poll local sensor data. For
further information about the IPMI agent see <xref linkend=
"section_telemetry-IPMI-agent"/>.</para>
<warning>
<para>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 module and keep
the <option>conductor.send_sensor_data</option> option set to
<literal>False</literal> in the <filename>ironic.conf</filename>
configuration file.</para>
</warning>
<para>Besides generic IPMI sensor data, the following Intel Node Manager
meters are recorded from capable platform:</para>
<xi:include href="tables/ceilometer-measurements-ipmi.xml"/>
</section>
<section xml:id="section_telemetry-snmp-metrics">
<title>SNMP based meters</title>
<para>Telemetry supports gathering SNMP based generic host metrics.
In order to be able to collect this data you need to run
<systemitem class="service">smpd</systemitem> on each target host.</para>
<para>The following meters are available about the host machines
by using SNMP:</para>
<xi:include href="tables/ceilometer-measurements-snmp.xml"/>
</section>
<section xml:id="section_telemetry-image-metrics">
<title>OpenStack Image Service</title>
<para>The following meters are collected for OpenStack Image Service:</para>
<xi:include href="tables/ceilometer-measurements-glance.xml"/>
</section>
<section xml:id="section_telemetry-volume-metrics">
<title>OpenStack Block Storage</title>
<para>The following meters are collected for OpenStack Block Storage:</para>
<xi:include href="tables/ceilometer-measurements-cinder.xml"/>
</section>
<section xml:id="section_telemetry-object-storage-metrics">
<title>OpenStack Object Storage</title>
<para>The following meters are collected for OpenStack Object Storage:</para>
<xi:include href="tables/ceilometer-measurements-swift.xml"/>
</section>
<section xml:id="section_telemetry-ceph-object-storage-metrics">
<title>Ceph Object Storage</title>
<para>In order to gather metrics from Ceph, you have to install and
configure the Ceph Object Gateway (radosgw) as it is described
in the <link xlink:href="http://docs.ceph.com/docs/master/radosgw/">
Installation Manual</link>. You have to enable <link xlink:href=
"http://ceph.com/docs/master/man/8/radosgw/#usage-logging">usage logging</link>
in order to get the related meters from Ceph. You will also need an
<literal>admin</literal> user with <literal>users</literal>,
<literal>buckets</literal>, <literal>metadata</literal> and
<literal>usage</literal> <literal>caps</literal> configured.</para>
<para>In order to access Ceph from Telemetry, you need to specify a
<literal>service group</literal> for <option>radosgw</option> in
the <filename>ceilometer.conf</filename> configuration file along
with <option>access_key</option> and <option>secret_key</option>
of the <literal>admin</literal> user mentioned above.</para>
<para>The following meters are collected for Ceph Object Storage:</para>
<xi:include href="tables/ceilometer-measurements-ceph.xml"/>
<note>
<para>The <literal>usage</literal> 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.
</para>
</note>
</section>
<section xml:id="section_telemetry-keystone-metrics">
<title>OpenStack Identity</title>
<para>The following meters are collected for OpenStack Identity:</para>
<xi:include href="tables/ceilometer-measurements-keystone.xml"/>
</section>
<section xml:id="section_telemetry-network-metrics">
<title>OpenStack Networking</title>
<para>The following meters are collected for OpenStack Networking:</para>
<xi:include href="tables/ceilometer-measurements-neutron.xml"/>
</section>
<section xml:id="section_telemetry-sdn-metrics">
<title>SDN controllers</title>
<para>The following meters are collected for SDN:</para>
<xi:include href="tables/ceilometer-measurements-sdn.xml"/>
<para>These meters are available for OpenFlow based switches.
In order to enable these meters, each driver needs to be properly
configured.</para>
</section>
<section xml:id="section_telemetry-lbaas-metrics">
<title>LoadBalancer as a Service (LBaaS)</title>
<para>The following meters are collected for LBaaS:</para>
<xi:include href="tables/ceilometer-measurements-lbaas.xml"/>
</section>
<section xml:id="section_telemetry-vpnaas-metrics">
<title>VPN as a Service (VPNaaS)</title>
<para>The following meters are collected for VPNaaS:</para>
<xi:include href="tables/ceilometer-measurements-vpnaas.xml"/>
</section>
<section xml:id="section_telemetry-fwaas-metrics">
<title>Firewall as a Service (FWaaS)</title>
<para>The following meters are collected for FWaaS:</para>
<xi:include href="tables/ceilometer-measurements-fwaas.xml"/>
</section>
<section xml:id="section_telemetry-orchestration-metrics">
<title>Orchestration module</title>
<para>The following meters are collected for the Orchestration module:</para>
<xi:include href="tables/ceilometer-measurements-heat.xml"/>
</section>
<section xml:id="section_telemetry-data-processing-metrics">
<title>Data processing service for OpenStack</title>
<para>The following meters are collected for the Data processing
service for OpenStack:</para>
<xi:include href="tables/ceilometer-measurements-sahara.xml"/>
</section>
<section xml:id="section_telemetry-key-value-store-metrics">
<title>Key Value Store module</title>
<para>The following meters are collected for the Key Value Store module:</para>
<xi:include href="tables/ceilometer-measurements-magnetodb.xml"/>
</section>
<section xml:id="section_telemetry-energy-metrics">
<title>Energy</title>
<para>The following energy related meters are available:</para>
<xi:include href="tables/ceilometer-measurements-kwapi.xml"/>
</section>
</section>