150 lines
5.4 KiB
ReStructuredText

..
Licensed under the Apache License, Version 2.0 (the "License"); you may
not use this file except in compliance with the License. You may obtain
a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
.. _customizing_deployment:
===================================
Customizing Ceilometer Deployment
===================================
Notifications queues
====================
.. index::
double: customizing deployment; notifications queues; multiple topics
By default, Ceilometer consumes notifications on the messaging bus sent to
**topics** by using a queue/pool name that is identical to the
topic name. You shouldn't have different applications consuming messages from
this queue. If you want to also consume the topic notifications with a system
other than Ceilometer, you should configure a separate queue that listens for
the same messages.
Ceilometer allows multiple topics to be configured so that the polling agent
can send the same messages of notifications to other queues. Notification
agents also use **topics** to configure which queue to listen for. If
you use multiple topics, you should configure notification agent and polling
agent separately, otherwise Ceilometer collects duplicate samples.
By default, the ceilometer.conf file is as follows::
[oslo_messaging_notifications]
topics = notifications
To use multiple topics, you should give ceilometer-agent-notification and
ceilometer-polling services different ceilometer.conf files. The Ceilometer
configuration file ceilometer.conf is normally locate in the /etc/ceilometer
directory. Make changes according to your requirements which may look like
the following:
For notification agent using ceilometer-notification.conf, settings like::
[oslo_messaging_notifications]
topics = notifications,xxx
For polling agent using ceilometer-polling.conf, settings like::
[oslo_messaging_notifications]
topics = notifications,foo
.. note::
notification_topics in ceilometer-notification.conf should only have one same
topic in ceilometer-polling.conf
Doing this, it's easy to listen/receive data from multiple internal and
external services.
.. _publisher-configuration:
Using multiple publishers
=========================
.. index::
double: customizing deployment; multiple publishers
Ceilometer allows multiple publishers to be configured in pipeline so that
data can be easily sent to multiple internal and external systems. Ceilometer
allows to set two types of pipelines. One is ``pipeline.yaml`` which is for
meters, another is ``event_pipeline.yaml`` which is for events.
By default, Ceilometer only saves event and meter data into Gnocchi_. If you
want Ceilometer to send data to other systems, instead of or in addition to
the default storage services, multiple publishers can be enabled by modifying
the Ceilometer pipeline.
Ceilometer ships multiple publishers currently. They are ``database``,
``notifier``, ``file``, ``http`` and ``gnocchi`` publishers.
.. _Gnocchi: http://gnocchi.xyz
To configure one or multiple publishers for Ceilometer, find the Ceilometer
configuration file ``pipeline.yaml`` and/or ``event_pipeline.yaml`` which is
normally located at /etc/ceilometer directory and make changes accordingly.
Your configuration file can be in a different directory.
For the Gnocchi publisher, the archive policy can be defined as a configuration
settings. The value specified for ``archive_policy`` should correspond to the
name of an ``archive_policy`` configured within Gnocchi.
To use multiple publishers, add multiple publisher lines in ``pipeline.yaml``
and/or ``event_pipeline.yaml`` file like the following::
---
sources:
- name: source_name
events:
- "*"
sinks:
- sink_name
sinks:
- name: sink_name
transformers:
publishers:
- gnocchi://?archive_policy=low
- file://
For the Gnocchi publisher backed by Swift storage, the following additional
configuration settings should be added::
[dispatcher_gnocchi]
filter_project = gnocchi_swift
Custom pipeline
===============
The paths of all pipeline files including ``pipeline.yaml`` and
``event_pipeline.yaml`` are located to ceilometer/pipeline/data by default.
And it's possible to set the path through
``pipeline_cfg_file`` being assigned to another one in ``ceilometer.conf``.
Ceilometer allow users to customize pipeline files. Before that, copy the
following yaml files::
$ cp ceilometer/pipeline/data/*.yaml /etc/ceilometer
Then you can add configurations according to the former section.
Efficient polling
=================
- There is an optional config called ``shuffle_time_before_polling_task``
in ceilometer.conf. Enable this by setting an integer greater than zero to
shuffle polling time for agents. This will add some random jitter to the time
of sending requests to Nova or other components to avoid large number of
requests in a short time period.
- There is an option to stream samples to minimise latency (at the
expense of load) by setting ``batch_polled_samples`` to ``False`` in
``ceilometer.conf``.