Amazon EC2 Cloudwatch python插件boto不返回指标
我正在使用python的boto插件查询Amazon的CloudWatch EC2。我正在尝试获取单个主机的指标。首先,我构建了一个要查询的主机和度量的列表,并进行了查询。我很清楚地遵循了文档,我不确定为什么使用ElastiCache时没有返回任何数据,但我有另一个针对ELB的脚本,它可以很好地返回查询的数据 没有为我查询的集群返回任何数据。如果我只是返回为每个主机记录的所有度量的列表,我已经验证了每个集群都有数据。因此,我将其缩小到查询或模块的问题 对于每个集群节点,返回的统计数据都是完全空白的,并且没有给出任何错误 []获取未命中的ctlive主机Amazon EC2 Cloudwatch python插件boto不返回指标,python,amazon-web-services,amazon-ec2,boto,Python,Amazon Web Services,Amazon Ec2,Boto,我正在使用python的boto插件查询Amazon的CloudWatch EC2。我正在尝试获取单个主机的指标。首先,我构建了一个要查询的主机和度量的列表,并进行了查询。我很清楚地遵循了文档,我不确定为什么使用ElastiCache时没有返回任何数据,但我有另一个针对ELB的脚本,它可以很好地返回查询的数据 没有为我查询的集群返回任何数据。如果我只是返回为每个主机记录的所有度量的列表,我已经验证了每个集群都有数据。因此,我将其缩小到查询或模块的问题 对于每个集群节点,返回的统计数据都是完全空白
import boto.ec2.cloudwatch
import datetime
import os
import subprocess
end = datetime.datetime.utcnow()
start = end - datetime.timedelta(minutes=5)
period = 300
conn = boto.ec2.cloudwatch.connect_to_region("us-east-1",)
metrics = conn.list_metrics()
metric_list = [ 'GetMisses',
'CmdGet',
'CPUUtilization',
'CmdSet']
instance_list = {}
for metric in metrics:
try:
instance_list[metric.dimensions['DBInstanceIdentifier'][0]] = {'Name': metric.dimensions['DBInstanceIdentifier'][0]}
except:
continue
for instance in instance_list:
for metric in metric_list:
instance = str(instance)
metric_return = conn.get_metric_statistics(period, start,end,metric,'AWS/ElastiCache','Sum',dimensions={'CacheClusterId':instance})
print metric_return, metric, instance
[]CmdGet ctlive主机
import boto.ec2.cloudwatch
import datetime
import os
import subprocess
end = datetime.datetime.utcnow()
start = end - datetime.timedelta(minutes=5)
period = 300
conn = boto.ec2.cloudwatch.connect_to_region("us-east-1",)
metrics = conn.list_metrics()
metric_list = [ 'GetMisses',
'CmdGet',
'CPUUtilization',
'CmdSet']
instance_list = {}
for metric in metrics:
try:
instance_list[metric.dimensions['DBInstanceIdentifier'][0]] = {'Name': metric.dimensions['DBInstanceIdentifier'][0]}
except:
continue
for instance in instance_list:
for metric in metric_list:
instance = str(instance)
metric_return = conn.get_metric_statistics(period, start,end,metric,'AWS/ElastiCache','Sum',dimensions={'CacheClusterId':instance})
print metric_return, metric, instance
[]CPU使用控制主机
import boto.ec2.cloudwatch
import datetime
import os
import subprocess
end = datetime.datetime.utcnow()
start = end - datetime.timedelta(minutes=5)
period = 300
conn = boto.ec2.cloudwatch.connect_to_region("us-east-1",)
metrics = conn.list_metrics()
metric_list = [ 'GetMisses',
'CmdGet',
'CPUUtilization',
'CmdSet']
instance_list = {}
for metric in metrics:
try:
instance_list[metric.dimensions['DBInstanceIdentifier'][0]] = {'Name': metric.dimensions['DBInstanceIdentifier'][0]}
except:
continue
for instance in instance_list:
for metric in metric_list:
instance = str(instance)
metric_return = conn.get_metric_statistics(period, start,end,metric,'AWS/ElastiCache','Sum',dimensions={'CacheClusterId':instance})
print metric_return, metric, instance
[]CmdSet-ctlive-master
import boto.ec2.cloudwatch
import datetime
import os
import subprocess
end = datetime.datetime.utcnow()
start = end - datetime.timedelta(minutes=5)
period = 300
conn = boto.ec2.cloudwatch.connect_to_region("us-east-1",)
metrics = conn.list_metrics()
metric_list = [ 'GetMisses',
'CmdGet',
'CPUUtilization',
'CmdSet']
instance_list = {}
for metric in metrics:
try:
instance_list[metric.dimensions['DBInstanceIdentifier'][0]] = {'Name': metric.dimensions['DBInstanceIdentifier'][0]}
except:
continue
for instance in instance_list:
for metric in metric_list:
instance = str(instance)
metric_return = conn.get_metric_statistics(period, start,end,metric,'AWS/ElastiCache','Sum',dimensions={'CacheClusterId':instance})
print metric_return, metric, instance
亚马逊SDK链接
boto SDK
这就是问题的答案。当您试图查询ElastiCache时,还需要包含CacheNodeId {'CacheClusterId':集群名称,'CacheNodeId':集群id}
我的问题不清楚吗?或者没有人有答案。