Primary Assignee(s)¶
Miguel Alejandro Cantu Sudarshan Acharya
2015-03-31 10:30
kilo, ceilometer
This blueprint was created to add the Celiometer project to OSAD. It will lay out a possible solution that will hopefully in turn create discussion around how to properly implement ceilometer as an OPTIONAL component of OSAD.
Currently, OSAD does not implement Ceilometer for various reasons. One being the unstable nature of the project in production environments - causing ever growing database tables resulting in extremely slow API quries. However, some may still want to deploy Ceilometer and may prefer to deal with the problem internally.
Furthermore, these issues should not discount the credibility of Ceilometer as an OpenStack project, and as such, it should be implemented into OSAD.
An additional role, os_ceilometer, would need to be added to handle the installation/configuration of the ceilometer services. Also, additional configuration directives would need to be added to other projects (such as cinder, nova, glance, etc..) so that they will generate notifications.
For the database, the /etc/openstack_deploy/conf.d/ceilometer.yml should give the user an option as to which database they want to connect to. This BP does not implement the deployment of an additional database for Ceilometer, but can be discussed as a potential addition.
Furthermore, new host groups will be added to the env.d/ceilometer.yml file so that the user may specify which infra nodes to install the central agents on , and which compute nodes to install the compute agent on. The proposed changes to the this file will look something like:
component_skel:
ceilometer_agent_compute:
belongs_to:
- ceilometer_all
ceilometer_agent_central:
belongs_to:
- ceilometer_all
ceilometer_agent_notification:
belongs_to:
- ceilometer_all
ceilometer_collector:
belongs_to:
- ceilometer_all
ceilometer_alarm_evaluator:
belongs_to:
- ceilometer_all
ceilometer_alarm_notifier:
belongs_to:
- ceilometer_all
ceilometer_api:
belongs_to:
- ceilometer_all
container_skel:
ceilometer_api_container:
belongs_to:
- metering-infra_containers
contains:
- ceilometer_agent_central
- ceilometer_agent_notification
- ceilometer_collector
- ceilometer_alarm_evaluator
- ceilometer_alarm_notifier
- ceilometer_api
properties:
service_name: ceilometer
container_release: trusty
metering-compute_container:
belongs_to:
- metering-compute_containers
contains:
- ceilometer_agent_compute
properties:
service_name: ceilometer
container_release: trusty
is_metal: true
physical_skel:
metering-compute_containers:
belongs_to:
- all_containers
metering-compute_hosts:
belongs_to:
- hosts
metering-infra_containers:
belongs_to:
- all_containers
metering-infra_hosts:
belongs_to:
- hosts
New ceilometer role
New ceilometer playbooks
A openstack_user_config.yml file in the openstack_deploy/conf.d/ directory specifically for ceilometer configurations.
Added vars in appropriate files
Haproxy config changes for ceilometer apis.
Don’t do it.
The ceilometer component should be OPTIONAL. And thus have no effect on other playbooks when chosen not to be run. However, when chosen to be run, other configurations across different projects can be changed to allow notifications.
None known
Credentials for the Ceilometer database may need to be specified by the user, as this BP does not implement the deployment of the Ceilometer database at this moment.
When ceilometer is enabled, the horizon dashboard can potentially slow down due to large API responses from ceilometer. This is related to the problem stated in the Problem Description. We must let the user know about this known problem, and advise the ceilometer database be properly supervised. When ceilometer is disabled, it should have no performance impact.
The user will now have the option to enable ceilometer on their private cloud.
Additional configs must be specified in /etc/openstack_deploy/conf.d/ceilometer.yml only if the deployer wants ceilometer to be enabled.
The deployer needs to be aware of the database that is going to be used for ceilometer.
A new role will be created to handle the installation/configuration of ceilometer. This role will be run explicitly by the deployer.
N/A
Miguel Alejandro Cantu Sudarshan Acharya
New ceilometer role
New ceilometer playbooks
A openstack_user_config.yml file in the openstack_deploy/conf.d/ directory specifically for ceilometer configurations.
Added vars in the appropriate sections.
Haproxy config changes for ceilometer apis.
The following files need to be modified:
etc/openstack_deploy/env.d/openstack_environment.yml
etc/openstack_deploy/user_secrets.yml
etc/openstack_deploy/user_variables.yml
playbooks/inventory/group_vars/all.yml
playbooks/vars/configs/haproxy_config.yml
playbooks/vars/repo_packages/openstack_services.yml
playbooks/roles/os_cinder/defaults/main.yml
playbooks/roles/os_cinder/templates/cinder.conf.j2
playbooks/roles/os_glance/defaults/main.yml
playbooks/roles/os_glance/templates/glance-api.conf.j2
playbooks/roles/os_glance/tempaltes/glance-registry.conf.j2
playbooks/roles/os_heat/defaults/main.yml
playbooks/roles/os_heat/templates/heat.conf.j2
playbooks/roles/os_nova/defaults/main.yml
playbooks/roles/os_nova/templates/nova.conf.j2
playbooks/roles/os_swift/defaults/main.yml
playbooks/roles/os_swift/tasks/swift_service_setup.yml
playbooks/roles/os_swift/templates/proxy-server.conf.j2
The following files need to added:
etc/openstack/deploy/conf.d/ceilometer.yml.example
playbooks/os-ceilometer-install.yml
playbooks/roles/os_ceilometer/
CONTRIBUTING.rst
LICENSE
README.rst
defaults/
main.yml
handlers/
main.yml
meta/
main.yml
templates/
ceilometer.conf.j2
api_paste.ini.j2
ceilometer-upstart-init.j2
event_definitions.yaml.j2
event_pipeline.yaml.j2
pipeline.yaml.j2
sudoers.j2
tasks/
main.yml
ceilometer_install.yml
ceilometer_pre_install.yml
ceilometer_post_install.yml
ceilometer_service_setup.yml
ceilometer_service_add.yml
ceilometer_upstart_common_init.yml
ceilometer_upstart_init.yml
The gate scripts will need to be modified with the ceilometer configurations turned on. A variable of the like of “DEPLOY_CEILOMETER” will be added with the appropriate conditionals in place to deploy ceilometer with a mongodb server for testing.
The playbooks will point to a mongodb server deployed on the AIO. A gate script will be created to deploy a simple mongodb server on the AIO using an ansible galaxy role.
Thorough documentation will need to be created explaining how to enable ceilometer.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.