Cloudformation ELB Cloudwatch警报数据不足

我已经使用cloudformation为我的服务设置了一堆cloudwatch警报。 除了ELB警报,我所有的警报都可以使用。 他们总是只显示不足的数据。 我可以进入控制台并手动设置警报,但我希望能够使用cloudformation模板创build所有内容。 我必须在我的JSON的某个地方有一个错误的报警。 这是其中之一:

"ELBHighLatencyAlarm": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "Namespace": "AWS/ELB", "AlarmName": { "Fn::Join" : ["", [ { "Ref" : "AWS::StackName"}, "-ELB-ELBHighLatencyAlarm"]]}, "AlarmDescription": { "Fn::Join" : ["", [ { "Ref" : "AWS::StackName"}, "-ELB-ELBHighLatencyAlarm"]]}, "ComparisonOperator": "GreaterThanThreshold", "Threshold": "0.5", "EvaluationPeriods": "1", "Period": "300", "MetricName": "Latency", "Statistic": "Average", "OKActions": [], "AlarmActions": [ { "Ref": "PagerDutySNSTopicArn" } ], "InsufficientDataActions": [ { "Ref": "PagerDutySNSTopicArn" } ], "Dimensions": [ { "Name": "ElasticLoadBalancer", "Value": { "Ref": "WebServerLoadBalancer" } }] } } 

你看到有什么问题吗?

您的"Dimensions"部分没有使用正确的"Name"值。 如果您replace:

  "Dimensions": [ { "Name": "ElasticLoadBalancer", "Value": { "Ref": "WebServerLoadBalancer" } }] 

  "Dimensions": [ { "Name": "LoadBalancerName", "Value": { "Ref": "WebServerLoadBalancer" } }] 

你会发现你的闹钟会起作用。

我可以证实上面的Dojo说的。 尽pipe尺寸块描述中的措词使得它看起来好像不是必需的,string/值是任意的,但是可以为要为其创build警报的每种types的服务使用特定的名称列表。 该列表将服务types映射到维度块中的允许值,这使您的警报正常工作。

在我看来,尺寸块是一种过滤事件的方式。 所以如果你想查看一个集群的CPUUtilization,你可以提供ClusterName。 如果你想要一个集群的特定服务,你将提供2个条目到维度块。 ClusterName和ServiceName。

http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ecs-metricscollected.html

下面两个示例唯一的区别是Dimensions.Name字段。

这个例子不起作用

 "CPUUtilizationScaleInAlarm": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "ActionsEnabled": true, "AlarmActions": [ { "Ref": "ESCServiceScaleInPolicy" } ], "AlarmDescription": "Scale in in response to CPUUtilization being low", "AlarmName": "CPUUtilizationScaleIn", "ComparisonOperator": "LessThanOrEqualToThreshold", "Dimensions": [ { "Name": "ECService", "Value": "MyAwesomeService" ], "EvaluationPeriods": 1, "MetricName": "CPUUtilization", "Namespace": "AWS/ECS", "Period": 60, "Statistic": "Average", "Threshold": 25, "Unit": "Percent" } } 

工作的例子

 "CPUUtilizationScaleInAlarm": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "ActionsEnabled": true, "AlarmActions": [ { "Ref": "ESCServiceScaleInPolicy" } ], "AlarmDescription": "Scale in in response to CPUUtilization being low", "AlarmName": "CPUUtilizationScaleIn", "ComparisonOperator": "LessThanOrEqualToThreshold", "Dimensions": [ { "Name": "ServiceName", "Value": "MyAwesomeService" ], "EvaluationPeriods": 1, "MetricName": "CPUUtilization", "Namespace": "AWS/ECS", "Period": 60, "Statistic": "Average", "Threshold": 25, "Unit": "Percent" } }