Juan Manuel Rey bio photo

Juan Manuel Rey

Unix Geek. Sysadmin by heart turned cloud architect. Working for Microsoft.

Twitter Google+ LinkedIn Github Stackoverflow

Ceilometer is the main telemetry and metering project within OpenStack Telemetry, the goal of Ceilometer is to collect all the data generated by the different OpenStack projects. The collected data is later persisted to a MongoDB backend for later analysis and usage. Check the developer documentation for a more in deep view of Ceilometer architecture.

In VIO 2.0 Ceilometer collected data can be used as an input for Heat to trigger auto-scaling operations.

VMware Integrated OpenStack, or VIO, 2.0 comes with Ceilometer disabled by default however enabling it is very easy as we are going to see.

Before enabling Ceilometer make sure you have enough IP addresses available in the management pool since for Ceilometer 3 additional nodes will be deployed. If no IP addresses are available the deployment will fail and VIO Manager will automatically rollback the operation and delete the additional nodes.

From VIO plugin UI in vSphere Web Client go to Manage -> Settings, in the left pane access Ceilometer and click Edit.

In the pop-up check Configure Ceilometer and click OK.

Open an SSH session to ceilometer server from VIO Manager node and list Ceilometer processes, you should get something like this.

ceilome+ 26248  9.8  5.5 179512 56176 ?        Ss   18:35   1:29 /usr/bin/python /usr/bin/ceilometer-api --config-file=/etc/ceilometer/ceilometer.conf --log-file=/var/log/ceilometer/ceilometer-api.log
ceilome+ 26300  0.2  3.8 130928 39016 ?        Ss   18:35   0:01 /usr/bin/python /usr/bin/ceilometer-agent-notification --config-file=/etc/ceilometer/ceilometer.conf --log-file=/var/log/ceilometer/ceilomete -agent-notification.log
ceilome+ 26354  0.1  3.9 132172 40184 ?        Ss   18:35   0:01 /usr/bin/python /usr/bin/ceilometer-alarm-notifier --config-file=/etc/ceilometer/ceilometer.conf --log-file=/var/log/ceilometer/ceilometer-alarm-notifier.log
ceilome+ 26410  7.7  3.9 135888 39952 ?        Ss   18:35   1:10 /usr/bin/python /usr/bin/ceilometer-collector --config-file=/etc/ceilometer/ceilometer.conf --log-file=/var/log/ceilometer/ceilometer-collector.log
ceilome+ 26466  0.2  4.1 134276 42448 ?        Ss   18:35   0:02 /usr/bin/python /usr/bin/ceilometer-agent-central --config-file=/etc/ceilometer/ceilometer.conf --log-file=/var/log/ceilometer/ceilometer-agent-central.log
ceilome+ 26520  0.1  3.9 132528 40660 ?        Ss   18:35   0:01 /usr/bin/python /usr/bin/ceilometer-alarm-evaluator --config-file=/etc/ceilometer/ceilometer.conf --log-file=/var/log/ceilometer/ceilometer-alarm-evaluator.log

Access controller01 node from VIO Manager server, elevate yourself to root and source cloudadmin.rc. Using Ceilometer client cli list and show some samples to check that the service is collecting data.

root@controller01:~# ceilometer sample-list
+--------------------------------------+--------------------------------------+------------+-------+-------------+-------+---------------------+
| ID                                   | Resource ID                          | Name       | Type  | Volume      | Unit  | Timestamp           |
+--------------------------------------+--------------------------------------+------------+-------+-------------+-------+---------------------+
| b16bc3d8-dcbe-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image.size | gauge | 931416576.0 | B     | 2016-02-26T19:25:28 |
| b0ecb5f2-dcbe-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image      | gauge | 1.0         | image | 2016-02-26T19:25:27 |
| 4cc24926-dcbd-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image.size | gauge | 931416576.0 | B     | 2016-02-26T19:15:29 |
| 4bb712a0-dcbd-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image      | gauge | 1.0         | image | 2016-02-26T19:15:28 |
| e68c864a-dcbb-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image.size | gauge | 931416576.0 | B     | 2016-02-26T19:05:28 |
| e5e7fe18-dcbb-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image      | gauge | 1.0         | image | 2016-02-26T19:05:27 |
| 81cb3c84-dcba-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image.size | gauge | 931416576.0 | B     | 2016-02-26T18:55:30 |
| 80c020fc-dcba-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image      | gauge | 1.0         | image | 2016-02-26T18:55:28 |
| 1b0d6bb2-dcb9-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image.size | gauge | 931416576.0 | B     | 2016-02-26T18:45:28 |
| 1a715196-dcb9-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image      | gauge | 1.0         | image | 2016-02-26T18:45:27 |
| b9797dba-dcb7-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image.size | gauge | 931416576.0 | B     | 2016-02-26T18:35:35 |
| b6df21ae-dcb7-11e5-8270-005056ae8593 | 2a705a1d-bdec-4507-a1fd-0f079e410aa7 | image      | gauge | 1.0         | image | 2016-02-26T18:35:30 |
+--------------------------------------+--------------------------------------+------------+-------+-------------+-------+---------------------+
root@controller01:~# ceilometer sample-show b16bc3d8-dcbe-11e5-8270-005056ae8593
+-------------+------------------------------------------------------------------------+
| Property    | Value                                                                  |
+-------------+------------------------------------------------------------------------+
| id          | b16bc3d8-dcbe-11e5-8270-005056ae8593                                   |
| metadata    | {"status": "active", "name": "ubuntu-14.04-server-amd64", "deleted":   |
|             | "False", "checksum": "266203f0de6f1105ace424a883f3345d", "created_at": |
|             | "2016-02-15T01:35:53.000000", "properties.vmware_disktype":            |
|             | "streamOptimized", "disk_format": "vmdk", "updated_at":                |
|             | "2016-02-26T18:35:38.000000", "protected": "False", "min_ram": "512",  |
|             | "container_format": "bare", "min_disk": "5", "is_public": "True",      |
|             | "deleted_at": "None", "properties.vmware_adaptertype": "lsiLogic",     |
|             | "size": "931416576"}                                                   |
| meter       | image.size                                                             |
| project_id  | None                                                                   |
| recorded_at | 2016-02-26T19:25:28.337000                                             |
| resource_id | 2a705a1d-bdec-4507-a1fd-0f079e410aa7                                   |
| source      | openstack                                                              |
| timestamp   | 2016-02-26T19:25:28                                                    |
| type        | gauge                                                                  |
| unit        | B                                                                      |
| user_id     | None                                                                   |
| volume      | 931416576.0                                                            |
+-------------+------------------------------------------------------------------------+
root@controller01:~#

In a future article I will discuss about triggering auto-scaling operations in Heat based on Ceilometer metrics.

Comments are welcome.

– Juanma