Amazon web services 是否可以为多个维度上的度量定义CloudWatch警报

Amazon web services 是否可以为多个维度上的度量定义CloudWatch警报,amazon-web-services,boto,amazon-cloudwatch,Amazon Web Services,Boto,Amazon Cloudwatch,我正在使用python和boto实现cloudwatch指标。我希望能够为MetricName定义一个警报,该警报将在所有其他维度中激活 例如,我在sandbox命名空间中有一个度量,其中MetricName的MemoryUsage和InstanceId的I-xxx。是否可以为所有实例ID维度定义一个将被触发的内存报警。在这种情况下,单个度量有一个表示所有实例的维度。以下是你如何在博托做到这一点 In [1]: import boto In [2]: cw = boto.connect_clo

我正在使用python和boto实现cloudwatch指标。我希望能够为
MetricName
定义一个警报,该警报将在所有其他维度中激活


例如,我在
sandbox
命名空间中有一个度量,其中
MetricName
MemoryUsage
InstanceId
I-xxx
。是否可以为所有
实例ID
维度定义一个将被触发的
内存报警。在这种情况下,单个度量有一个表示所有实例的维度。以下是你如何在博托做到这一点

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']}
您可以在这里看到,有四个独立的度量与度量名称CPUUtilization关联。第一个维度包含使用该特定AMI的所有实例,第二个维度包含当前正在运行的特定实例,第四个维度包含特定类型的所有实例,但第三个维度没有指定的维度。此指标表示我的所有实例的CPU利用率。因此:

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]
如果所有my实例的平均CPU利用率在两个评估期内超过80%,则应触发此警报。您还可以选择一个不同的统计数据,如“最大值”,如果所有实例的CPU利用率的最大值超过80%,并且超过2个评估周期,则会触发该统计数据


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

太好了,谢谢!我还学会了一个很酷的iPython技巧。是的,内存使用指标是我创建的自定义指标。如果您愿意,我实际上有一个后续问题。w/r/t不带
InstanceId
维度的
CPUUtilization
:如果我要创建该度量,我是否必须先将CPU数据的
度量值数据
放入带
InstanceId
维度的度量值,然后将相同的数据放入不带该维度的度量值?或者有更好的方法吗?这个答案不正确!第三个指标表示所有RDS数据库的CPU利用率。它不表示EC2数据。转到cloudwatch面板并键入CPUUtilization,您将看到每个分段的细分。不一定是真的,这取决于您的权限。确保将参数namespace='AWS/EC2'添加到list\u metrics调用中。