Integration of OpenStack Ceilometer metering service

Registered by Roman Sokolkov

Implementation will contain two stages.

Stage 1. Summary:
* Support HA and non-HA ceilometer
* MySQL (OpenStack DB) as database backend for ceilometer
* OSTF ceilometer testing
Limitations:
* no MongoDB support(default db backend)

Stage 2. Summary:
* Support MongoDB as backend
* Deploying MongoDB for production use cases

Acceptance criteria for testing:

By default ceilometer is disabled. To enable you should set "ceilometer" checkbox to true.

General:
1) On controller: "source openrc && ceilometer meter-list" . Command should not fail.
2) On compute: "ps aux|grep ceilometer". There should be a process "ceilometer-agent-compute".
3) If syslog used(default), on every node file "/etc/rsyslog.d/51-ceilometer.conf" should be presented.

For simple mode:
1) On controller: "ps aux|grep ceilometer". There should be a 3 processes: ceilometer-api, ceilometer-collector, ceilometer-agent-central.

For HA mode:
1) On every controller: "ps aux|grep ceilometer". There should be at least 2 processes: ceilometer-api, ceilometer-collector.
2) On every controller: "crm status|grep p_openstack-ceilometer-central". Find node where resource is started, ssh on this node and check process with "ps aux|grep ceilometer-agent-central"

Blueprint information

Status:
Complete
Approver:
Vladimir Kuklin
Priority:
Essential
Drafter:
Roman Sokolkov
Direction:
Approved
Assignee:
Ivan Berezovskiy
Definition:
Approved
Series goal:
Accepted for 5.0.x
Implementation:
Implemented
Milestone target:
milestone icon 5.0
Started by
Roman Sokolkov
Completed by
Vladimir Kuklin

Whiteboard

Changes in fuel-library:
https://github.com/Mirantis/fuel/pull/854

Changes in fuel-web:
https://review.openstack.org/#/c/56608/

Changes in fuel-main:
https://review.openstack.org/#/c/56884/

Changes for OSTF:
https://github.com/tleontovich/fuel-ostf/commits/havana

Issues:
ceilometer-client not supports http_proxy(OSTF) - INPROGRESS

Stage 2 Design considerations (please add this link to the full spec as well)
https://docs.google.com/a/mirantis.com/document/d/1qZSme1H5SQL5l46Fsjrafn9fJVzKN9vgSmYHACBeX3E/edit#

Gerrit topic: https://review.openstack.org/#q,topic:bp/ceilometer-fuel-integraition,n,z

Addressed by: https://review.openstack.org/85350
    Add puppetlabs-mongodb

Addressed by: https://review.openstack.org/71901
    Added MongoDB for Ceilometer

Addressed by: https://review.openstack.org/86289
    Add support for ceilometer agent notification service

(?)

Work Items

Work items:
general ceilometer puppet manifests: DONE
fuel web support: DONE
fuel main ceilometer support: DONE
ceilometer alarm services support: DONE
ceilometer notification bus: DONE
[vrovachev] OSTF tests: INPROGRESS
[iberezovskiy] ceilometer horizon support: TODO
[vkramskikh] Fuel UI + nailgun: TODO
[mmaxur] mongodb support (puppets): DONE
[akislitsky] mongodb support (disk allocation, python script): TODO
[iberezovskiy] ceilometer anotification support: INPROGRESS

Dependency tree

* Blueprints in grey have been implemented.