2014-02-26 44 views
4

我想一次使用Boto为多个数据库提取RDS Cloudwatch指标。显示多个实例的RDS指标

到目前为止,我只能够使用这样的方法在同一时间获得指标只有一个实例:

botoRDS = boto.connect_cloudwatch(aws_access_key_id=Key, aws_secret_access_key=OtherKey) 

instanceStats = botoRDS.get_metric_statistics(period=60, 
       start_time=self.startTime, 
       end_time=self.endTime, 
       namespace="AWS/RDS", 
       metric_name='CPUUtilization', 
       statistics=["Average"], 
       dimensions={'DBInstanceIdentifier':['DB1','DB2']}) 

这是我得到什么:

[ 
{ 
    u'Timestamp': datetime.datetime(2034,1,14,21,2), 
    u'Average': 45.1, 
    u'Unit': u'Percent' 
}] 

我会喜欢能够返回的是两个数据库的平均值。事情是这样的:

[ 
{ 
    u'Timestamp': datetime.datetime(2034,1,14,21,2), 
    u'DBInstanceID':'DB1', 
    u'Average': 33.02, 
    u'Unit': u'Percent' 
}, 
{ 
    u'Timestamp': datetime.datetime(2034,1,14,21,2), 
    u'DBInstanceID':'DB2', 
    u'Average': 45.1, 
    u'Unit': u'Percent' 
} 

]

是否有可能形成规定得到这样的结果的尺寸。我真的很想不必为每个数据库提取数据。

+0

Cloudwatch for RDS的维度为DB类和数据库引擎-http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide /rds-metricscollected.html – Guy

回答

2

我不认为有什么办法可以做你在问什么。您可以指定一个DBInstanceIndentifier作为维度并获取该DBInstance的特定数据,或者您可以指定多个DBInstanceIdentifiers并获取跨这些维度汇总的指标数据,但我认为无法在单个API中请求多个单独的维度呼叫。我认为您必须打电话给您感兴趣的每个特定维度。