2014-07-14 1 views
1

Ceci est un suivi à une earlier questionCloudWatch produit d'information daté pour la table DynamoDB

J'utilise une version modifiée du code qui a été proposé dans la solution à cette question:

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 

Ce que j'attends est une liste d'horodateurs correspondant aux points de données cloudwatch. Je reçois cela mais les horodatages sont assez datés, c'est-à-dire qu'ils correspondent à environ 6 heures avant le moment où j'ai effectivement exécuté le code. Est-ce que mes informations sur les statistiques de table sont incorrectes ou est-ce que quelque chose d'autre est faux? Pourquoi suis-je obtenir des informations datées?

Répondre

0

humm, votre code semble correct. J'ai copié et exécuté votre code contre ma table et je peux obtenir les dernières mesures. La seule chose que j'ai changé est table_name et region.

J'ai remarqué que l'horodatage retourné dans le résultat est en GMT. il est donc 7 heures plus tard par rapport à mon heure locale (PST). Il semble également que CloudWatch effectue un échantillonnage toutes les 5 minutes. donc vous devriez vous attendre à seulement 5 minutes de retard.

Questions connexes