Allow VM users to drive scale up and scale down events
Some instance applications desire a mechanism to scale their auto-scaling group independently of metrics collected by Heat's implementation of CloudWatch (or in the future, Ceilometer's alarms).
Add a new resource type OS::Heat:
Description: Text field describing the policy
Actions: A list of policies to execute when Heat detects the UserDrivenScaling event has occurred
Dimensions: A dict containing a reference to the AutoScaling group to help Heat set limits on the scale policy - contains:
Name: AutoScalingGrou
Value: The ARN of the autoscaling group
Example JSON:
"AutoScaleUserD
"Type": "OS::Heat:
"Properties": {
"Description": When the app requests UserDrivenUp, scale up the autoscaling group"
"Actions": [ { "Ref": "ScaleUpPolicy" } ],
"Dimensions": [ {
"Name": "AutoScalingGro
"Value": { "Ref": "MyAutoScalingG
} ]
Add a new option to cfn-push-stats called "--user-driven" of the form of
cfn-push-stats --user-driven UserDrivenUp
Only downside of this approach is the VM must be aware of the name of AutoScaleUp. One possible solution to this is to place the identifier in a special type of parameter which could use a ref.
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Steven Dake
- Direction:
- Needs approval
- Assignee:
- Steven Dake
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Steven Hardy
Related branches
Related bugs
Sprints
Whiteboard
I think this can be done now:
Just change the Alarm rule:
from:
to:
You might have to tweak cfn-push-stats or just use curl to send the message.
Sample just counts the number of samples that arrive, so if Threshold is "1"
it is basically a control message.
Do something similar with the scale down alarm.
--
(shardy) : +1, I think everything described in this BP is already possible via either cfn-push-stats (inside instance) or heat-watch (outside instance), I don't see any value in creating a new resource type for this