Configuring pipeline using data store

Registered by Rohit Jaiswal

This blueprint has been superseded. See the newer blueprint "Dynamic pipeline configuration using file reloading" for updated plans.

By updating Ceilometer to monitor values recorded in a persistent data store
such as MySQL, the application could be made to dynamically activate/deactivate
collection targets or similar functions, have distinctly different
configurations for multiple nodes in different environments (i.e. dev/test/prod
or HA scenarios) and could ultimately be updated with new collection targets
“on-the-fly”.

Currently, Ceilometer relies on multiple configuration files for determining
run-time parameters used in polling and notification handling. The current
configuration file approach limits the extent to which we can customize
Ceilometer functionality (e.g. polling targets, intervals, publishing) and
becomes a potential issue in a large-scale deployment.

This is an area where potential features will rely on maintaining multiple
pipeline definitions, one for each coordination group of agents. Relying on
manual changes to pipeline files or even automated tools is error-prone,
complex to achieve and get it right.

The pipeline conf has a yaml format and will fail to process if there are
extra spaces or other human-induced error.

For instance, in the HA mode, when the cloud environment has a number of active
agents, changing configuration of the agent (e.g polling interval) is a complicated
and error-prone manual task currently.

The ideal solution is to support the same pipeline configuration for all agents
that are part of the same coordination group (in HA mode). The API will allow modification
of the pipeline definition in a centralized fashion without compromising on flexibility
and allowing extensibility to support multiple pipeline definitions.

Migrating the configuration options to a data store gives flexibility and lays the
foundation for on-the-fly updates to Ceilometer.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Rohit Jaiswal
Direction:
Needs approval
Assignee:
Rohit Jaiswal
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
gordon chung

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.