Amazon EC2 Cloudwatch python插件boto不返回指标

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的脚本,它可以很好地返回查询的数据 没有为我查询的集群返回任何数据。如果我只是返回为每个主机记录的所有度量的列表,我已经验证了每个集群都有数据。因此,我将其缩小到查询或模块的问题 对于每个集群节点,返回的统计数据都是完全空白

我正在使用python的boto插件查询Amazon的CloudWatch EC2。我正在尝试获取单个主机的指标。首先,我构建了一个要查询的主机和度量的列表,并进行了查询。我很清楚地遵循了文档,我不确定为什么使用ElastiCache时没有返回任何数据,但我有另一个针对ELB的脚本,它可以很好地返回查询的数据

没有为我查询的集群返回任何数据。如果我只是返回为每个主机记录的所有度量的列表,我已经验证了每个集群都有数据。因此,我将其缩小到查询或模块的问题

对于每个集群节点,返回的统计数据都是完全空白的,并且没有给出任何错误

[]获取未命中的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 
[]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}


我的问题不清楚吗?或者没有人有答案。