CloudWatch为DynamoDB表生成日期信息

时间:2014-07-14 19:03:11

标签: python amazon-dynamodb amazon-cloudwatch

这是earlier问题

的后续行动

我正在运行该问题解决方案中提出的修改版代码:

import os
import boto
import boto.ec2.cloudwatch
import datetime

aws_key = os.environ.get('AWS_ACCESS_KEY_ID', None)
aws_secret = os.environ.get('AWS_SECRET_ACCESS_KEY', None)

end = datetime.datetime.utcnow()
start = end - datetime.timedelta(minutes=400)
tName = 'Name-of-my-table'
stats = ['Average', 'Sum', 'SampleCount', 'Maximum', 'Minimum']
c = boto.ec2.cloudwatch.connect_to_region('us-east-1',aws_access_key_id=aws_key,aws_secret_access_key=aws_secret)
data = c.get_metric_statistics(period=60, start_time=start, end_time=end,   
     metric_name='ConsumedWriteCapacityUnits', namespace='AWS/DynamoDB',
     statistics=stats,dimensions={'TableName': tName})
data2 = {}         
for d in data:
    data2[d['Timestamp']] = str(d)

ordered_keys = sorted(data2.keys())
for k in ordered_keys:
    print "%s" % k

我期望的是与cloudwatch数据点对应的时间戳列表。我确实得到了这个,但是时间戳已经过时,即它们对应于我实际运行代码之前大约6个小时。我的表统计信息是不正确还是其他错误?为什么我收到过时的信息?

1 个答案:

答案 0 :(得分:0)

嗯,你的代码似乎是正确的。我复制并运行你的代码对我的表,我可以得到最新的指标。我唯一改变的是table_name和region。

我注意到结果中返回的时间戳是GMT。所以它比我当地时间(太平洋标准时间)晚了7个小时。此外,CloudWatch似乎每隔5分钟进行一次采样。所以你应该期待只有5分钟的延迟。