Amazon web services 获取所有具有报警boto的指标

Amazon web services 获取所有具有报警boto的指标,amazon-web-services,boto,amazon-cloudwatch,Amazon Web Services,Boto,Amazon Cloudwatch,我是boto的新手,尝试获取所有有警报的指标。有人能告诉我怎么做吗?这就是我要做的。我可以通过以下方式获得所有指标 import boto.ec2.cloudwatch conn = boto.ec2.cloudwatch.connect_to_region('ap-southeast-1') metrics = conn.list_metrics() for metric in metrics: print metric.name, metric.namespace 我知道有一个函数“

我是boto的新手,尝试获取所有有警报的指标。有人能告诉我怎么做吗?这就是我要做的。我可以通过以下方式获得所有指标

import boto.ec2.cloudwatch
conn = boto.ec2.cloudwatch.connect_to_region('ap-southeast-1')
metrics = conn.list_metrics()
for metric in metrics:
   print metric.name, metric.namespace
我知道有一个函数“descripe_alarms_for_metric”返回度量的报警。但是它对我不起作用,给了我一个空的列表。这就是我正在尝试的

for metric in metrics:
    print conn.describe_alarms_for_metric(metric.name, metric.namespace)
我还可以使用“描述报警”查看所有报警的列表,但我不知道哪个报警是针对哪个指标的

alarms = conn.describe_alarms()
for alarm in alarms:
    print alarm
descripe_alarms()
返回报警的列表,可以对其进行检查以找出报警的度量和其他详细信息

alarms = conn.describe_alarms()
for alarm in alarms:
    print alarm.name
    print alarm.metric
    print alarm.namespace
descripe_alarms()
返回报警的列表,可以对其进行检查以找出报警的度量和其他详细信息

alarms = conn.describe_alarms()
for alarm in alarms:
    print alarm.name
    print alarm.metric
    print alarm.namespace

对于这两种情况,
descripe\u报警\u For\u metric()
不起作用,除非您还提供维度-请参阅:

维度(列表)——与度量相关联的维度。如果 公制有任何关联的维度,必须按顺序指定它们 为了成功的号召

(dict)——扩展度量的标识

名称(字符串)--[必需]维度的名称

值(字符串)--[必需]表示维度的值 测量

有了这个要求,我不确定这个API的意义是什么。另一种方法是通过分页器使用
描述报警()
,然后指定过滤器

您可以使用该示例作为基础:

import boto3

# Create CloudWatch client
cloudwatch = boto3.client('cloudwatch')

# List alarms of insufficient data through the pagination interface
paginator = cloudwatch.get_paginator('describe_alarms')
for response in paginator.paginate(StateValue='INSUFFICIENT_DATA'):
    print(response['MetricAlarms'])
然后修改它以添加过滤器:

paginator = cloudwatch.get_paginator('describe_alarms')
page_iterator = paginator.paginate()
filtered_iterator = page_iterator.search("MetricAlarms[?MetricName==`CPUUtilization` && Namespace==`AWS/EC2`]")
for alarm in filtered_iterator:
    print(alarm)

API文档和

中有关这两个方面的详细信息显然
说明_metric()的报警
不起作用,除非您还提供了一个维度-请参阅:

维度(列表)——与度量相关联的维度。如果 公制有任何关联的维度,必须按顺序指定它们 为了成功的号召

(dict)——扩展度量的标识

名称(字符串)--[必需]维度的名称

值(字符串)--[必需]表示维度的值 测量

有了这个要求,我不确定这个API的意义是什么。另一种方法是通过分页器使用
描述报警()
,然后指定过滤器

您可以使用该示例作为基础:

import boto3

# Create CloudWatch client
cloudwatch = boto3.client('cloudwatch')

# List alarms of insufficient data through the pagination interface
paginator = cloudwatch.get_paginator('describe_alarms')
for response in paginator.paginate(StateValue='INSUFFICIENT_DATA'):
    print(response['MetricAlarms'])
然后修改它以添加过滤器:

paginator = cloudwatch.get_paginator('describe_alarms')
page_iterator = paginator.paginate()
filtered_iterator = page_iterator.search("MetricAlarms[?MetricName==`CPUUtilization` && Namespace==`AWS/EC2`]")
for alarm in filtered_iterator:
    print(alarm)

API文档和中的更多信息。

描述报警\u度量值
似乎不起作用,但您可以通过执行报警来获取度量值。度量值
描述报警\u度量值
似乎不起作用,但是您可以通过执行
alarm.metric
Thank@Ben从警报中获取度量值。这解决了我的问题,但我如何才能得到所有报警对象的列表。我尝试使用dir(),但没有看到这些对象(名称、度量、命名空间)。这些属性都列在我在答案中链接到的列表中。这就是你想知道的吗?我已经查阅了文档,可以看到它们,但是当我尝试dir(报警)时,我没有得到这些属性。这就是我想知道的。谢谢@Ben。这解决了我的问题,但我如何才能得到所有报警对象的列表。我尝试使用dir(),但没有看到这些对象(名称、度量、命名空间)。这些属性都列在我在答案中链接到的列表中。这就是你想知道的吗?我已经查阅了文档,可以看到它们,但是当我尝试dir(报警)时,我没有得到这些属性。这就是我想知道的。