I assume that you are only struck by reading data and plotting.
private static void findCloudWatchData() { LinkedHashMap<Date,Double> map=new HashMap<Date,Double>(); AmazonCloudWatchClient cloudWatch = new AmazonCloudWatchClient(new BasicAWSCredentials(AccessKey, SecretKey)); cloudWatch.setEndpoint("monitoring.us-east-1.amazonaws.com"); long offsetInMilliseconds = 1000 * 60 * 60 * 24; Dimension instanceDimension = new Dimension(); instanceDimension.setName("instanceid"); instanceDimension.setValue(instanceid); GetMetricStatisticsRequest request = new GetMetricStatisticsRequest() .withStartTime(new Date(new Date().getTime() - offsetInMilliseconds)) .withNamespace("AWS/EC2") .withPeriod(60 * 60) .withMetricName("CPUUtilization") .withStatistics("Average") .withDimensions(Arrays.asList(instanceDimension)) .withEndTime(new Date()); GetMetricStatisticsResult getMetricStatisticsResult = cloudWatch.getMetricStatistics(request); }
Please note that the data is out of order. Sort the HashMap and plot the chart.
source share