summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNadya Shakhat <nprivalova@mirantis.com>2016-03-22 17:55:45 +0300
committerNadya Shakhat <nprivalova@mirantis.com>2016-04-13 15:45:08 +0300
commit522de005bd2db9989d91e31151c3290dd73cd452 (patch)
treef756ccfabde1f16dc9a1f098131d04de6c9a0864
parent1036a1cafbef4d9f981fb2d6637704c736a59210 (diff)
Update the documentation for MOS 8.0
Notes
Notes (review): Code-Review+2: Nadya Shakhat <nprivalova@mirantis.com> Workflow+1: Nadya Shakhat <nprivalova@mirantis.com> Verified+2: Jenkins Submitted-by: Jenkins Submitted-at: Thu, 12 May 2016 09:34:27 +0000 Reviewed-on: https://review.openstack.org/295879 Project: openstack/fuel-plugin-ceilometer-redis Branch: refs/heads/master
-rw-r--r--doc/content/description.rst68
-rw-r--r--doc/content/guide.rst60
-rw-r--r--doc/content/images/redis-plugin-8.0.pngbin0 -> 84459 bytes
-rw-r--r--doc/content/images/redis-plugin-on.pngbin107638 -> 104845 bytes
-rw-r--r--doc/content/images/redis-plugin-on8.0.pngbin0 -> 70348 bytes
-rw-r--r--doc/content/images/redis-plugin.pngbin70618 -> 65217 bytes
-rw-r--r--doc/content/installation.rst4
-rw-r--r--metadata.yaml4
8 files changed, 107 insertions, 29 deletions
diff --git a/doc/content/description.rst b/doc/content/description.rst
index ddd931d..e30636c 100644
--- a/doc/content/description.rst
+++ b/doc/content/description.rst
@@ -1,17 +1,53 @@
1Ceilometer Redis plugin 1Ceilometer Redis plugin
2======================= 2=======================
3 3
4Ceilometer Redis Plugin provides a coordination mechanism for 4Ceilometer Redis Plugin aims to install Redis to MOS environment and provide a coordination mechanism for
5`Ceilometer agents <https://ceilometer.readthedocs.org/en/latest/architecture.html>`_. 5`Ceilometer agents <https://ceilometer.readthedocs.org/en/latest/architecture.html>`_ and Alarm Evaluator
6The first version of plugin will support only `Central Agent <https://ceilometer.readthedocs.org/en/latest/glossary.html#term-central-agent>`_. 6through the `tooz library <http://docs.openstack.org/developer/tooz/>`_ with a `Redis backend <http://redis.io>`_
7It uses `tooz library <http://docs.openstack.org/developer/tooz/>`_ with 7The plugin supports coordination for the following Ceilometer services: central agent, notification agent
8`Redis backend <http://redis.io>`_ to provide a set of resources 8and alarm-evaluator. Each of these services are running on every controller after the plugin
9to be polled for each Central agent. The plugin also changes deployment of Ceilometer central agent: 9is installed. All of them are joined into the corresponding coordination group (one coordination group
10now every controller has its own running ceilometer central service 10per each service). It differs from the default configuration when there should be only one central agent
11which are joined into coordination group. These changes in deployment will be done automatically. 11and alarm-evaluator per cloud. The plugin also configures redis-server under pacemaker to monitor its process.
12It also configures redis-server under pacemaker to monitor its process. The plugin configures 12The plugin configures `redis-sentinel <http://redis.io/topics/sentinel>`_ to monitor the state of the redis
13`redis-sentinel <http://redis.io/topics/sentinel>`_ to monitor the state of redis cluster, 13cluster, to elect new master during failovers, to forward ceilometer services to new elected redis master,
14to elect new master during failovers, to forward ceilometer agents to new elected redis master, to organize sync between redis nodes. 14to organize sync between redis nodes.
15
16
17Central agent
18-------------
19Ceilometer Central agent is responsible for polling all OpenStack resources except Nova's (Nova resources,
20i.e. vms, are polled by a Compute agent). Without coordination enabled, only one Central agent should be running
21per cloud. The reason is that all the central agents have the same set of OpenStack resources to poll every
22configurable time interval. If coordination is not enabled, each OpenStack resource will be polled as many times
23as many instances of Central agents are running in a cloud.
24Thus, coordination provides a disjoint set of OpenStack resources to poll for every Central agent running on the
25cloud to avoid polling one resource several times.
26
27Alarm evaluator
28---------------
29Ceilometer alarm evaluator service is responsible for Ceilometer alarm evaluation.
30By default, in MOS there is only one alarm evaluator per cloud. The reason is the same as for a central agent.
31If there are several alarm evaluators and no coordination enabled, all of them will evaluate the same set of alarms
32every configurable time interval. The alarm sets for evaluators should be disjoint. So, coordination is responsible
33for providing the set of alarms to evaluate to each alarm-evaluator in the cloud.
34
35Notification agent
36------------------
37Before Liberty, there was no need to coordinate Ceilometer notification agents. But starting from Liberty, samples
38transformations started to be handled not by compute/central agents as it was before, but by a notification agent.
39Some of Ceilometer transformers have a local cache where it is stored the data from previously processed samples.
40For example, "cpu_util" metric are obtained from two consecutive Samples with "cpu" metric: one is subtracted from
41another and divided to an amount of cpu (this information is stored in Sample's metadata).
42Thus, it should be guaranteed that all the Samples which should be transformed by one transformer, will go to the
43same notification agent. If some of the samples go to another, the cache cannot be shared and some data will be lost.
44
45To handle this process properly, IPC queues was introduced - inter process communication queues in message bus
46(RabbitMQ). With coordination enabled, each notification agent has two set of listeners: for main queues and for IPC
47queues. All notification agents listen to _all_ the main queues (where we have all messages from OpenStack services
48and polling-based messages from central/compute agents) and re-publish messages to _all_ IPC queues. Coordination
49starts to work at this point: every notification agent in the cloud has it's own set of IPC queues to listen to. Thus,
50we can be sure that local cache on each notification agent contains all the previous data required for transformation.
15 51
16 52
17Requirements 53Requirements
@@ -20,7 +56,7 @@ Requirements
20======================= ================ 56======================= ================
21Requirement Version/Comment 57Requirement Version/Comment
22======================= ================ 58======================= ================
23Fuel 7.0 59Fuel 7.0, 8.0
24tooz <0.14.0,>=0.13.1 60tooz <0.14.0,>=0.13.1
25======================= ================ 61======================= ================
26 62
@@ -29,14 +65,14 @@ tooz <0.14.0,>=0.13.1
29Limitations 65Limitations
30----------- 66-----------
31 67
32* The plugin version 1.0-1.0.0-1 provides coordination only for Agent Central service.
33 Alarm evaluator and Notification agent will be supported in the next plugin
34 version.
35
36* The plugin works correctly only on clouds with odd numbers of controllers. 68* The plugin works correctly only on clouds with odd numbers of controllers.
37 This requirement is mandatory because Redis needs an odd number of nodes to 69 This requirement is mandatory because Redis needs an odd number of nodes to
38 choose the master successfully. 70 choose the master successfully.
39 71
72* In MOS 8.0, there are no transformers configured by default. The plugin doesn't add any of them into
73 ceilometer's pipeline.yaml. Thus, you need to configure it manually if you want to use transformers.
74 If you don't need this feature, it is recommended to disable coordination for the notification agents.
75
40.. include:: installation.rst 76.. include:: installation.rst
41.. include:: guide.rst 77.. include:: guide.rst
42 78
diff --git a/doc/content/guide.rst b/doc/content/guide.rst
index ba428fb..f394c16 100644
--- a/doc/content/guide.rst
+++ b/doc/content/guide.rst
@@ -2,19 +2,45 @@ User Guide
2========== 2==========
3 3
4Once the Ceilometer Redis plugin plugin has been installed (following `Installation Guide`_), you can 4Once the Ceilometer Redis plugin plugin has been installed (following `Installation Guide`_), you can
5create *OpenStack* environments with Ceilometer whose Central agent works in workload_partitioned mode. 5create *OpenStack* environments with Ceilometer whose Central agents, Notification agent and Alarm evaluator
6work in workload_partitioned mode.
6 7
7Ceilometer installation 8Ceilometer installation
8----------------------- 9-----------------------
9 10
10This plugin was created to provide partitioning for Ceilometer services. So its 11This plugin was created to provide partitioning for Ceilometer services. So its
11usage is senseless without Ceilometer installed. 12usage is senseless without Ceilometer installed.
12So, you will need to `create a new OpenStack environment <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#create-a-new-openstack-environment>`_ 13So, you will need to `create a new OpenStack environment <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#create-a-new-openstack-environment>`_
13with `Ceilometer <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#related-projects>`_ using the Fuel UI Wizard. 14with `Ceilometer <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#related-projects>`_ using the Fuel UI Wizard.
14 15
15 16
16Plugin configuration 17Plugin configuration in MOS 8.0
17-------------------- 18-------------------------------
19
20#. First of all, make sure that plugin was successfully installed.
21 Go to the *Plugins* tab. You should see the following:
22
23 .. image:: images/redis-plugin-on8.0.png
24 :width: 100%
25
26#. The next step is enable the plugin. Go to *Environments* tab and
27 select the *Redis plugin for Ceilometer* checkbox:
28
29 .. image:: images/redis-plugin-8.0.png
30 :width: 100%
31
32#. When
33 `adding nodes to environment and assigning roles to them <https://docs.mirantis.com/openstack/fuel/fuel-8.0/operations.html#adding-redeploying-and-replacing-nodes>`_, please consider using odd number of controllers as mentioned in `Limitations`_.
34
35#. Finish
36 `environment configuration <https://docs.mirantis.com/openstack/fuel/fuel-8.0/mos-planning-guide.html#fuel-reference-architecture-overview>`_
37
38#. Run `network verification check <https://docs.mirantis.com/openstack/fuel/fuel-8.0/operations.html#network-issues>`_.
39
40#. Press "Deploy button" to once you are done with environment configuration.
41
42Plugin configuration in MOS 7.0
43-------------------------------
18 44
19#. First of all, make sure that plugin was successfully installed. 45#. First of all, make sure that plugin was successfully installed.
20 Go to the *Plugins* tab. You should see the following: 46 Go to the *Plugins* tab. You should see the following:
@@ -39,18 +65,21 @@ Plugin configuration
39#. Press `Deploy button <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#deploy-changes>`_ to once you are done with environment configuration. 65#. Press `Deploy button <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#deploy-changes>`_ to once you are done with environment configuration.
40 66
41 67
68
42How to check that plugin works 69How to check that plugin works
43------------------------------ 70------------------------------
44#. Check that ceilometer-agent-central service is running on each controller. Run ``pcs resource`` 71#. Check that ceilometer-agent-central and ceilometer-alarm-evaluator services are running
45 and you should see the following in the output:: 72 on each controller. Run ``pcs resource`` and you should see the following in the output::
46 73
47 Clone Set: clone_p_ceilometer-agent-central [p_ceilometer-agent-central] 74 Clone Set: clone_p_ceilometer-agent-central [p_ceilometer-agent-central]
48 Started: [ node-1.domain.tld node-2.domain.tld node-3.domain.tld ] 75 Started: [ node-21.domain.tld node-27.domain.tld node-33.domain.tld ]
49 76
77 Clone Set: clone_p_ceilometer-alarm-evaluator [p_ceilometer-alarm-evaluator]
78 Started: [ node-21.domain.tld node-27.domain.tld node-33.domain.tld ]
50 79
51 ``Started`` list should contain all controllers. 80 ``Started`` list should contain all controllers.
52 81
53#. Check that samples are not duplicated. For this purpose you may choose 82#. For the central agent: check that samples are not duplicated. For this purpose you may choose
54 any metric collected by central agent. All these metrics may be found here 83 any metric collected by central agent. All these metrics may be found here
55 `Measurements <http://docs.openstack.org/admin-guide-cloud/telemetry-measurements.html>`_ . 84 `Measurements <http://docs.openstack.org/admin-guide-cloud/telemetry-measurements.html>`_ .
56 You may choose any section *except* OpenStack Compute and then select metric with 'Pollster' Origin. 85 You may choose any section *except* OpenStack Compute and then select metric with 'Pollster' Origin.
@@ -81,3 +110,16 @@ How to check that plugin works
81 .... 2015-11-05T10:26:38 | 110 .... 2015-11-05T10:26:38 |
82 .... 2015-11-05T10:26:26 | 111 .... 2015-11-05T10:26:26 |
83 .... 2015-11-05T10:26:17 | 112 .... 2015-11-05T10:26:17 |
113
114#. For the notification agent: Check that IPC queues are created and have consumers:
115 ubuntu@ubuntu:/opt/stack/ceilometer$ sudo rabbitmqctl list_queues name messages consumers | grep ceilo
116 ceilometer-pipe-meter_source:meter_sink-0.sample 0 1
117 ceilometer-pipe-meter_source:meter_sink-1.sample 0 1
118 ceilometer-pipe-meter_source:meter_sink-2.sample 0 1
119 ceilometer-pipe-meter_source:meter_sink-3.sample 0 1
120 ceilometer-pipe-meter_source:meter_sink-4.sample 0 1
121
122 By default, you should see 10 queues in this list. Every queue should have one and only one consumer.
123
124#. For the alarm evaluator, it is possible to see that everything works as expected only from the logs. Grep the
125 line "extract_my_subset". There should be different "My subset: [" results on each alarm evaluator instance.
diff --git a/doc/content/images/redis-plugin-8.0.png b/doc/content/images/redis-plugin-8.0.png
new file mode 100644
index 0000000..680fca9
--- /dev/null
+++ b/doc/content/images/redis-plugin-8.0.png
Binary files differ
diff --git a/doc/content/images/redis-plugin-on.png b/doc/content/images/redis-plugin-on.png
index b37e9e5..b7c5fb6 100644
--- a/doc/content/images/redis-plugin-on.png
+++ b/doc/content/images/redis-plugin-on.png
Binary files differ
diff --git a/doc/content/images/redis-plugin-on8.0.png b/doc/content/images/redis-plugin-on8.0.png
new file mode 100644
index 0000000..d25cc00
--- /dev/null
+++ b/doc/content/images/redis-plugin-on8.0.png
Binary files differ
diff --git a/doc/content/images/redis-plugin.png b/doc/content/images/redis-plugin.png
index 9978778..bad25b8 100644
--- a/doc/content/images/redis-plugin.png
+++ b/doc/content/images/redis-plugin.png
Binary files differ
diff --git a/doc/content/installation.rst b/doc/content/installation.rst
index 0fb6742..fcbe272 100644
--- a/doc/content/installation.rst
+++ b/doc/content/installation.rst
@@ -13,7 +13,7 @@ To install the Redis plugin:
13 `Fuel Plugins Catalog <https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/>`_. 13 `Fuel Plugins Catalog <https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/>`_.
14 14
15#. Move the plugin's rpm to the 15#. Move the plugin's rpm to the
16 `Fuel Master node <https://docs.mirantis.com/openstack/fuel/fuel-7.0/quickstart-guide.html#quickstart-guide>`_ with secure copy (scp):: 16 `Fuel Master node <https://docs.mirantis.com/openstack/fuel/fuel-8.0/quickstart-guide.html#quickstart-guide>`_ with secure copy (scp)::
17 17
18 scp fuel-plugin-ceilometer-redis/ceilometer-redis-1.0-1.0.0-1.noarch.rpm / 18 scp fuel-plugin-ceilometer-redis/ceilometer-redis-1.0-1.0.0-1.noarch.rpm /
19 root@:<the_Fuel_Master_node_IP address>:/tmp 19 root@:<the_Fuel_Master_node_IP address>:/tmp
@@ -31,7 +31,7 @@ To install the Redis plugin:
31 [root@fuel-master ~]# fuel plugins list 31 [root@fuel-master ~]# fuel plugins list
32 id | name | version | package_version 32 id | name | version | package_version
33 ---|------------------|---------------|---------------- 33 ---|------------------|---------------|----------------
34 4 | ceilometer-redis | 1.0.0 | 2.0.0 34 4 | ceilometer-redis | 1.0.2 | 3.0.0
35 35
36 36
37 37
diff --git a/metadata.yaml b/metadata.yaml
index c7e0d92..875480c 100644
--- a/metadata.yaml
+++ b/metadata.yaml
@@ -3,9 +3,9 @@ name: ceilometer-redis
3# Human-readable name for your plugin 3# Human-readable name for your plugin
4title: Redis plugin for Ceilometer 4title: Redis plugin for Ceilometer
5# Plugin version 5# Plugin version
6version: 1.0.1 6version: 1.0.2
7# Description 7# Description
8description: Ceilometer extension that provide workload-partitioning and HA for ceilometer services 8description: Ceilometer extension that provides a workload-partitioning and HA for ceilometer services
9# Required fuel version 9# Required fuel version
10fuel_version: ['7.0','8.0'] 10fuel_version: ['7.0','8.0']
11# Specify license of your plugin 11# Specify license of your plugin