Boto3 API for cloudwatch - get_metrics_statistics returns 空数组

Boto3 API for cloudwatch - get_metrics_statistics returns empty array

我正在尝试使用 boto3 调用 cloudwatch API,它似乎进行得很顺利。但是返回的数据是一个空数组 [],即使是 200 响应。我错过了什么?

cloudwatch.get_metric_statistics(
        Namespace='AWS/ELB',
        MetricName='Latency',
        Dimensions=[
            {
                'Name' : 'LoadBalancerName',
                'Value' : '********'
            }
        ],  
        StartTime=datetime.utcnow() - timedelta(seconds=600),
        EndTime=datetime.utcnow(),
        Period=60,
        Statistics=['Average', 'Maximum']
)

{u'Datapoints': [], 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': 'f631c9d6-b6d4-11e8-9b60-89ddf4935382', 'HTTPHeaders': {'x-amzn-requestid': 'f631c9d6-b6d4-11e8-9b60-89ddf4935382', 'date': 'Wed, 12 Sep 2018 21:44:00 GMT', 'content-length': '330', 'content-type': 'text/xml'}}, u'Label': 'Latency'}

我在 boto3 上尝试了其他 APIs 来验证连接,我确实得到了有效的响应。

空数组是可接受的返回值 - 当数据不可用时:

  • 时间范围
  • 为单位
  • 期间
  • 用于统计

如果您为该指标请求同一组 statistics/period/time 范围,您是否能够在 CloudWatch 控制台中看到一些数据?

由于某种原因,AWS-SDK 向我的 startDateTime 和 EndDateTime 参数添加了一个月。我用了

 AWS.config.logger = console; 

在我的代码中,它帮助我查看了日志,并确认它看起来提前了一个月。我将我的代码更新为提前一个月,现在似乎 运行 很好。