heat/etc/heat/templates/AWS_CloudWatch_Alarm.yaml

87 lines
2.6 KiB
YAML

HeatTemplateFormatVersion: '2012-12-12'
Description: AWS::CloudWatch::Alarm using Ceilometer.
Parameters:
AlarmDescription:
Type: String
Default: An alarm
EvaluationPeriods:
Type: String
MetricName:
Type: String
Namespace:
Type: String
Default: system/linux
Period:
Type: String
ComparisonOperator:
Type: String
AllowedValues: [GreaterThanOrEqualToThreshold, GreaterThanThreshold,
LessThanThreshold, LessThanOrEqualToThreshold]
Statistic:
Type: String
AllowedValues: [SampleCount, Average, Sum, Minimum, Maximum]
Threshold:
Type: String
Units:
Type: String
AllowedValues: [Seconds, Microseconds, Milliseconds, Bytes, Kilobytes,
Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits,
Gigabits, Terabits, Percent, Count, Bytes/Second,
Kilobytes/Second, Megabytes/Second, Gigabytes/Second,
Terabytes/Second, Bits/Second, Kilobits/Second,
Megabits/Second, Gigabits/Second, Terabits/Second,
Count/Second, None]
Default: None
AlarmActions:
Type: CommaDelimitedList
Default: ''
OKActions:
Type: CommaDelimitedList
Default: ''
InsufficientDataActions:
Type: CommaDelimitedList
Default: ''
Dimensions:
Type: CommaDelimitedList
Mappings:
ComparisonOperatorMap:
LessThanOrEqualToThreshold: {Ceilometer: le}
LessThanThreshold: {Ceilometer: lt}
GreaterThanThreshold: {Ceilometer: gt}
GreaterThanOrEqualToThreshold: {Ceilometer: ge}
StatisticMap:
SampleCount: {Ceilometer: count}
Average: {Ceilometer: avg}
Sum: {Ceilometer: sum}
Minimum: {Ceilometer: min}
Maximum: {Ceilometer: max}
Resources:
__alarm__:
Type: OS::Ceilometer::Alarm
Properties:
description:
Ref: AlarmDescription
meter_name:
Ref: MetricName
period:
Ref: Period
evaluation_periods:
Ref: EvaluationPeriods
repeat_actions: true
threshold:
Ref: Threshold
alarm_actions:
"Fn::Split": [",", {Ref: AlarmActions}]
ok_actions:
"Fn::Split": [",", {Ref: OKActions}]
insufficient_data_actions:
"Fn::Split": [",", {Ref: InsufficientDataActions}]
statistic:
"Fn::FindInMap": [StatisticMap, {Ref: Statistic}, Ceilometer]
comparison_operator:
"Fn::FindInMap": [ComparisonOperatorMap, {Ref: ComparisonOperator}, Ceilometer]
matching_metadata:
"Fn::MemberListToMap": [Name, Value, {"Fn::Split": [",", {Ref: Dimensions}]}]