long offsetInMilliseconds = 1000 * 60 * 60;
GetMetricStatisticsRequest request1 = new GetMetricStatisticsRequest()
.withStartTime(new Date(new Date().getTime() - offsetInMilliseconds))
.withNamespace("AWS/DynamoDB")
.withPeriod(60*60)
.withDimensions(new Dimension().withName("TableName").withValue("INT_LOG_TABLE").withName("Operation").withValue("PutItem"))
.withMetricName("SuccessfulRequestLatency")
.withStatistics("Average")
.withEndTime(new Date());
GetMetricStatisticsResult getMetricStatisticsResult = cw.getMetricStatistics(request1);
double avgRequestLatency = 0;
List dataPoint = getMetricStatisticsResult.getDatapoints();
for (Object aDataPoint : dataPoint){
Datapoint dp = (Datapoint) aDataPoint;
avgRequestLatency = dp.getAverage();
}
我试过这样的。
我无法进入for循环
那是因为“getMetricStatisticsResult”是
“标签:SuccessfulRequestLatency,数据点:[]”
我怎样才能得到“数据点”??
提前致谢。
最佳答案
不返回任何数据点的原因可能有很多。
让我们从代码本身开始:
.withDimensions(new Dimension().withName("TableName").withValue("INT_LOG_TABLE").withName("Operation").withValue("PutItem"))
此处您仅创建一个维度并设置名称和值两次,因此结果是一个具有 name="Operation"
和 value="PutItem"
的维度。
尝试这样做:
.withDimensions(Arrays.asList(
new Dimension().withName("TableName").withValue("INT_LOG_TABLE"),
new Dimension().withName("Operation").withValue("PutItem")))
关于java - 我如何从 aws cloudwatch 的特定指标中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49745326/