いくつかのクラウドウォッチ メトリックを返す単純なアプリケーションを実行しようとしています。3 つの異なる Web サンプルを試しましたが、データを返すものはありません。AWS コンソールでデータを確認できます。おそらく、誰かが私のエラーを見つけたり、動作することがわかっている簡単な例を教えてくれませんか?
私が達成したい原則は次のとおりです。アプリケーションが dynamoDB の読み取り/書き込み制限に近づいたときを知り、それを増やしたいと考えています。統計を要求するポーリングを行うスレッドを作成する必要があると想定し、容量の 80% に達した場合は制限を増やします。
private static void findCloudWatchData() throws InterruptedException {
AmazonCloudWatchClient cloudWatch = new AmazonCloudWatchClient(new BasicAWSCredentials(key, secret));
cloudWatch.setEndpoint("monitoring.eu-west-1.amazonaws.com");
GetMetricStatisticsRequest getMetricStatisticsRequest = new GetMetricStatisticsRequest();
GregorianCalendar g = new GregorianCalendar(2012, 9, 17, 12, 0);
getMetricStatisticsRequest.setStartTime(g.getTime());
g.add(Calendar.DAY_OF_MONTH, 2);
getMetricStatisticsRequest.setEndTime(g.getTime());
getMetricStatisticsRequest.setNamespace("AWS/DynamoDB");
getMetricStatisticsRequest.setMetricName("SuccessfulRequestLatency");
getMetricStatisticsRequest.setPeriod(5*60);
Dimension tableDimension = new Dimension();
tableDimension.setName("TableName");
tableDimension.setValue("personalisation.user_favourite-int");
Dimension operationDimension = new Dimension();
operationDimension.setName("Operation");
operationDimension.setValue("Query");
getMetricStatisticsRequest.setDimensions(Arrays.asList(tableDimension, operationDimension));
Collection<String> statistics = new ArrayList<String>();
statistics.add("Average");
getMetricStatisticsRequest.setStatistics(statistics);
getMetricStatisticsRequest.setUnit(StandardUnit.Count);
//results
GetMetricStatisticsResult result = cloudWatch.getMetricStatistics(getMetricStatisticsRequest);
System.err.println(result.getDatapoints().size()); //this returns 0 always
for (Datapoint p : result.getDatapoints()) {
System.out.println(p.getTimestamp() + " " + p.getAverage());
}
}