문제

I'm using python and boto for cloudwatch metrics. I would like to be able to define an alarm for a MetricName which will be active for all the other dimensions.

For instance I have a metric in the sandbox namespace with MetricName of MemoryUsage and InstanceId of i-xxx. Is it possible to define a single alarm that will be triggered for MemoryUsage for all InstanceId dimensions?

도움이 되었습니까?

해결책

Yes, you can create an alarm for any single metric. In this case, the single metric has a dimension that represents all instances. Here's how you can do it in boto.

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']}

You can see here that there are four separate metrics associated with the metric_name CPUUtilization. The first has a dimension of all instances that use that particular AMI, the second has a dimension for a particular instance that is now running, the fourth has a dimension of all instances of a particular type, but the third has no specified dimension. This metric represents CPUUtilization across all of my instances. So:

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]

This alarm should fire if the average CPU utilization across all my instances exceeds 80% for two evaluation periods. You could also choose a different statistic, like 'Maximum', that would fire if the maximum value for CPU utilization across all instances exceeded 80% for more than 2 evaluation periods.

I don't know if you are specifically looking for MemoryUsage or if that was just an example but I don't think MemoryUsage is one of the available metrics from CloudWatch.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top