Move to ceilometer as CloudWatch metric/alarm back-end

Registered by Steven Hardy

Move to using ceilometer as the metric/alarm back-end for our Cloudwatch resources - this will require several in-progress new features in ceilometer, and rework in heat to make our current metric logic pluggable so it can be optionally replaced by ceilometer. This blueprint will be used to track which ceilometer features we require to proceed with this work, and to capture any design discussions around the heat-side work which is required.

Blueprint information

Steven Hardy
Angus Salkeld
Series goal:
Accepted for havana
Milestone target:
milestone icon 2013.2
Started by
Angus Salkeld
Completed by
Angus Salkeld

Related branches


Gerrit topic:,topic:bp/watch-ceilometer,n,z

Addressed by:
    WIP *** Add Ceilometer Alarm resource

Addressed by:
    Add an API for passing a signal through to a resource

Addressed by:
    Make the current alarms use the signal action

Addressed by:
    Teach ScalingPolicy and Restarter to create signed urls

Addressed by:
    Add a Ceilometer alarm resource

Addressed by:
    Stop patching the GenericResource's property_schema

Addressed by:
    Only create the period watch task if there is a watch in the stack

Addressed by:
    Wrap the watch rule start in a method

Addressed by:
    Use new style classes

Addressed by:
    Allow the Ceilometer Alarm to be used with cfn-push-stats

Addressed by:
    Add the AutoScalingGroupName to the server Tags

Addressed by:
    Move the random_name() function from loadbalancer to utils

Addressed by:
    Don't use a static uuid for the stack_id in ceilometer_alarm


Work Items

Work items:
Ceilometer post api : DONE
Ceilometer user auth : DONE
Ceilometer alarm API : DONE
Ceilometer alarm db : DONE
Ceilometer alarmer : DONE
Heat add a new OS::Ceilometer::Alarm : DONE
Heat add a controller for the alarm state change webhooks : DONE
Heat once we are happy with that move the AWS Alarm over to Ceilometer : INPROGRESS

Dependency tree

* Blueprints in grey have been implemented.