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.