是否可以针对多维度量标准定义CloudWatch警报

jbe*_*man 4 boto amazon-web-services amazon-cloudwatch

我正在使用python和boto进行cloudwatch指标.我希望能够MetricName为所有其他维度激活警报.

比如我在度量sandbox命名空间MetricNameMemoryUsageInstanceIdi-xxx.是否可以定义MemoryUsage针对所有 InstanceId尺寸触发的单个警报?

gar*_*aat 6

是的,您可以为任何单个指标创建警报.在这种情况下,单个度量标准具有表示所有实例的维度.这是你如何在博托做到这一点.

In [1]: import boto

In [2]: cw = boto.connect_cloudwatch()

In [3]: cw.list_metrics(metric_name='CPUUtilization')
Out[3]: 
[Metric:CPUUtilization,
 Metric:CPUUtilization,
 Metric:CPUUtilization,
 Metric:CPUUtilization]

In [4]: l = _

In [5]: for m in l:
   ...:     print m.name, m.dimensions
   ...: 
CPUUtilization {u'ImageId': [u'ami-1b814f72']}
CPUUtilization {u'InstanceId': [u'i-366c4354']}
CPUUtilization {}
CPUUtilization {u'InstanceType': [u'm1.large']}
Run Code Online (Sandbox Code Playgroud)

您可以在此处看到,有四个与metric_name CPUUtilization关联的单独指标.第一个具有使用该特定AMI的所有实例的维度,第二个具有正在运行的特定实例的维度,第四个具有特定类型的所有实例的维度,但第三个没有指定维度.此度量标准表示我所有实例的CPUUtilization.所以:

In [6]: m = l[2]

In [7]: m.create_alarm(name='cpu_all_instances', comparison='>', threshold=80.0, period=60, evaluation_periods=2, statistic='Average')
Out[7]: MetricAlarm:cpu_all_instances[CPUUtilization(Average) GreaterThanThreshold 80.0]
Run Code Online (Sandbox Code Playgroud)

如果两个评估期间所有实例的平均CPU利用率超过80%,则会触发此警报.您还可以选择不同的统计信息,例如"最大值",如果超过2个评估期间所有实例的CPU利用率的最大值超过80%,则会触发该统计信息.

我不知道你是否专门寻找MemoryUsage或者这只是一个例子,但我不认为MemoryUsage是CloudWatch的可用指标之一.

  • 这个答案不正确!第三个度量标准表示跨所有RDS数据库的CPUUtilization.它不代表EC2数据.转到cloudwatch面板并键入CPUUtilization,您将看到每个细分的细分. (2认同)