Merge "Update docco about dispatchers available for Telemetry"

This commit is contained in:
Jenkins 2014-12-18 15:55:08 +00:00 committed by Gerrit Code Review
commit 7cd19fc8d2

@ -747,82 +747,116 @@ sinks:
<section xml:id="section_telemetry-storing-data"> <section xml:id="section_telemetry-storing-data">
<title>Storing samples</title> <title>Storing samples</title>
<para>The Telemetry module has a separate service that is responsible for persisting the data <para>The Telemetry module has a separate service that is responsible for persisting the data
that is coming from the pollsters or received as notifications. The data is stored in that is coming from the pollsters or received as notifications. The data can be stored in
a database back end, the list of supported databases can be found in a file or a database back end, for which the list of supported databases can be found in
<xref linkend="section_telemetry-supported-dbs"/>. <xref linkend="section_telemetry-supported-dbs"/>. The data can also be sent to an external
data store by using an HTTP dispatcher.
</para> </para>
<para>The <systemitem class="service">ceilometer-collector</systemitem> service receives the <para>The <systemitem class="service">ceilometer-collector</systemitem> service receives the
samples as metering messages from the message bus of the configured AMQP service. It stores samples as metering messages from the message bus of the configured AMQP service. It stores
these samples without any modification in the configured back end. The service has to run on these samples without any modification in the configured file or database back end, or in
a host machine from which it has access to the database.</para> the external data store as dispatched by the HTTP dispatcher. The service has to run on a
host machine from which it has access to the configured dispatcher.</para>
<note>
<para>Multiple dispatchers can be configured for Telemetry at one time.</para>
</note>
<para>Multiple <systemitem class="service">ceilometer-collector</systemitem> process can be <para>Multiple <systemitem class="service">ceilometer-collector</systemitem> process can be
run at a time. It is also supported to start multiple worker threads per collector process. run at a time. It is also supported to start multiple worker threads per collector process.
The <parameter>collector_workers</parameter> configuration option has to be modified in the The <parameter>collector_workers</parameter> configuration option has to be modified in the
<link xlink:href= <link xlink:href=
"http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-telemetry.html"> "http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-telemetry.html">
collector section</link> of the <filename>ceilometer.conf</filename> configuration file.</para> collector section</link> of the <filename>ceilometer.conf</filename>
configuration file.</para>
<note> <note>
<para>Using multiple workers per collector process is not recommended to be used with <para>Using multiple workers per collector process is not recommended to be used with
PostgreSQL as database back end.</para> PostgreSQL as database back end.</para>
</note> </note>
<para>By default the time to live value (ttl) for samples is set to -1, which means that they <simplesect>
are kept in the database forever. This can be changed by modifying the <parameter>time_to_live <title>Database dispatcher</title>
</parameter> parameter in <filename>ceilometer.conf</filename>. The value has to be specified <para>When the database dispatcher is configured as data store, you have the option to set
in seconds and it means that every sample that based on its timestamp is older, than the a <parameter>time_to_live</parameter> parameter (ttl) for samples. By default the time to
specified value will be deleted from the database.</para> live value for samples is set to -1, which means that they are kept in the database forever.
<para>When the samples are deleted, there are cases, when users and resources remain in the </para>
database without any corresponding sample. There is a command line script, that deletes <para>The time to live value is specified in seconds. Each sample has a time stamp, and the
these useless entries, which is called <systemitem class="service">ceilometer-expirer</systemitem>. <literal>ttl</literal> value indicates that a sample is deleted from the database when
This script should be run periodically, for instance in a cron job, to ensure that the the number of seconds has elapsed since that sample reading was stamped. For example,
database is cleaned up properly.</para> if the sampling occurs every 60 seconds, and the time to live is set to 600, only ten
<para>The level of support differs in case of the configured back end:</para> samples are stored in the database.</para>
<table rules="all"> <para>During the deletion of samples <literal>resources</literal> and <literal>users</literal>
<caption>Time-to-live support for database back ends</caption> can remain in the database without a corresponding sample when the time to live has expired,
<col width="24%"/> you may need to delete the entries related to the expired samples. The command-line script,
<col width="38%"/> which you can use for this purpose is
<col width="38%"/> <systemitem class="service">ceilometer-expirer</systemitem>. You can run it in a cron job,
<thead> which helps keeping your database in a consistent state.</para>
<tr> <para>The level of support differs in case of the configured back end:</para>
<td>Database</td> <table rules="all">
<td>ttl value support</td> <caption>Time-to-live support for database back ends</caption>
<td><systemitem class="service">ceilometer-expirer</systemitem> <col width="24%"/>
capabilities</td> <col width="38%"/>
</tr> <col width="38%"/>
</thead> <thead>
<tbody> <tr>
<tr> <td>Database</td>
<td>MongoDB</td> <td>ttl value support</td>
<td>MongoDB has a built-in mechanism for deleting samples that are older <td><systemitem class="service">ceilometer-expirer</systemitem>
than the configured ttl value.</td> capabilities</td>
<td>In case of this database, only the lingering dead resource, </tr>
user and project entries will be deleted by </thead>
<systemitem class="service">ceilometer-expirer</systemitem>. <tbody>
</td> <tr>
</tr> <td>MongoDB</td>
<tr> <td>MongoDB has a built-in mechanism for deleting samples that are older
<td>SQL-based back ends</td> than the configured ttl value.</td>
<td>The library (SQLAlchemy) that is used for accessing SQL-based back ends does <td>In case of this database, only the lingering dead resource,
not support using the ttl value.</td> user and project entries will be deleted by
<td><systemitem class="service">ceilometer-expirer</systemitem> has to be <systemitem class="service">ceilometer-expirer</systemitem>.
used for deleting both the samples and the remaining entires in other </td>
database tables. The script will delete samples based on the </tr>
<parameter>time_to_live</parameter> value that is set in the <tr>
configuration file.</td> <td>SQL-based back ends</td>
</tr> <td>The library (SQLAlchemy) that is used for accessing SQL-based back ends does
<tr> not support using the ttl value.</td>
<td>HBase</td> <td><systemitem class="service">ceilometer-expirer</systemitem> has to be
<td>HBase does not support this functionality currently, therefore the ttl value used for deleting both the samples and the remaining entires in other
in the configuration file is ignored.</td> database tables. The script will delete samples based on the
<td>The samples are not deleted by using <parameter>time_to_live</parameter> value that is set in the
<systemitem class="service">ceilometer-expirer</systemitem>, configuration file.</td>
this functionality is not supported.</td> </tr>
</tr> <tr>
<tr> <td>HBase</td>
<td>DB2</td> <td>HBase does not support this functionality currently, therefore the ttl value
<td>Same case as MongoDB.</td> in the configuration file is ignored.</td>
<td>Same case as MongoDB.</td> <td>The samples are not deleted by using
</tr> <systemitem class="service">ceilometer-expirer</systemitem>,
</tbody> this functionality is not supported.</td>
</table> </tr>
<tr>
<td>DB2</td>
<td>Same case as MongoDB.</td>
<td>Same case as MongoDB.</td>
</tr>
</tbody>
</table>
</simplesect>
<simplesect>
<title>HTTP dispatcher</title>
<para>The Telemetry module supports sending samples to an external HTTP target. The
samples are sent without any modification. To set this option as data storage, the
<option>dispatcher</option> has to be changed to <literal>http</literal> in the
<filename>ceilometer.conf</filename> configuration file. For the list
of options that you need to set, see the see the
<link xlink:href="http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-telemetry.html">
<literal>dispatcher_http</literal> section</link>
in the <citetitle>OpenStack Configuration Reference</citetitle>.</para>
</simplesect>
<simplesect>
<title>File dispatcher</title>
<para>You can store samples in a file by setting the <option>dispatcher</option>
option in <filename>ceilometer.conf</filename> o <literal>file</literal>. For the list
of configuration options, see the
<link xlink:href="http://docs.openstack.org/trunk/config-reference/content/ch_configuring-openstack-telemetry.html">
<literal>dispatcher_file</literal> section</link>
in the <citetitle>OpenStack Configuration Reference</citetitle>.</para>
</simplesect>
</section> </section>
</section> </section>