显示多个实例的 RDS 指标

Ril*_*eyJ 5 python boto amazon-web-services amazon-rds

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

到目前为止,我一次只能使用这样的方法获取一个实例的指标:

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']})
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

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

我希望能够分别返回两个数据库的平均值。像这样的东西:

[
{
    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'
}
Run Code Online (Sandbox Code Playgroud)

]

是否可以形成指定的维度以获得这样的结果。我真的不想为每个数据库提取数据。

gar*_*aat 3

我认为没有任何办法可以做到你所要求的。您可以指定单个DBInstanceIndentifier维度并获取该 DBInstance 的特定数据,也可以指定多个维度DBInstanceIdentifiers并获取跨这些维度聚合的指标数据,但我认为没有任何方法可以在单个 API 调用中请求多个单独的维度。我认为你必须针对你感兴趣的每个具体维度进行调用。