2015-03-30 1 views
0

J'écris un code Java pour récupérer Amazon EC2 metrics en utilisant Amazon Cloudwatch. Voici le code:Le service Amazon Cloudwatch ne renvoie pas d'informations sur les métriques

 AWSCredentials awsCredentials = new BasicAWSCredentials(aws_accessKey, aws_secretKey); 
     AmazonCloudWatchClient cloudWatch = new AmazonCloudWatchClient(awsCredentials); 

     Dimension instanceDimension = new Dimension(); 
     instanceDimension.setName("InstanceId"); 
     instanceDimension.setValue("i-480de11e"); 


     GetMetricStatisticsRequest request = new GetMetricStatisticsRequest(); 
     request.setNamespace("AWS/EC2"); 
     request.setPeriod(60 * 5); 

     ArrayList<String> stats = new ArrayList<String>(); 
     stats.add("Average"); 
     request.setStatistics(stats); 

     ArrayList<Dimension> dimensions = new ArrayList<Dimension>(); 
     dimensions.add(instanceDimension); 
     request.setDimensions(dimensions); 
     request.setMetricName("CPUUtilization"); 

     SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(new Date()); 
     cal.add(Calendar.HOUR_OF_DAY, -5); 
     cal.add(Calendar.MINUTE, -30); 
     Date endTime = format.parse(cal.getTime().toString());  
     request.setEndTime(endTime); 

     cal.add(Calendar.MINUTE, -10); 
     Date startTime = format.parse(cal.getTime().toString());  
     request.setStartTime(startTime); 

     GetMetricStatisticsResult getMetricStatisticsResult = cloudWatch.getMetricStatistics(request); 
     System.out.println(getMetricStatisticsResult.getDatapoints().size()); 

Ce qui précède est de retour à zéro si je peux voir les données métriques dans la console AWS. Peu chose que je voudrais préciser:

1) Ai-je besoin de définir comme critère d'évaluation cloudWatch.setEndpoint(....)?
2) Pourrait-il y avoir un problème avec réglage de l'heure de début/fin lié à formater etc?

Toute aide sera appréciée.

Répondre

0

Résolution du problème en définissant cloudWatch.setEndpoint(....)