0

我有一些从 cloudwatch api 重试的数据。具体来说,我用过listMetrics. 我从这个电话中得到的数据是:

{Metrics: [{Namespace: Testing, MetricName: hello123, Dimensions: [{Name: name, Value: 1425, }], }, {Namespace: Metric from grails, MetricName: hello123, Dimensions: [{Name: name, Value: 1068, }], },

正如我所料,这是正确的数据。我需要一种只返回value字段的方法。不是其他的东西。在java中有没有办法做到这一点?

编辑:

我用于创建指标的代码是:

MetricDatum metricDatum = new MetricDatum().withMetricName("hello123").withValue(80.0)
Dimension tableDimension = new Dimension()
tableDimension.withName("hello123")
tableDimension.withValue("somvalues")
Collection<Dimension> values = new ArrayList<Dimension>();
values << tableDimension
metricDatum.withDimensions(values)
cloudWatch.putMetricData(new PutMetricDataRequest().withNamespace("Metric from grails").withMetricData(metricDatum))

为了列出维度值,我使用:

DimensionFilter tableDimension2 = new DimensionFilter() 
tableDimension2.withName("hello123")
Collection<DimensionFilter> values2 = new ArrayList<DimensionFilter>();
values2 << tableDimension2
query = new ListMetricsRequest().withNamespace("Testing").withDimensions(values2)
def result = amazonWebService.cloudWatch.listMetrics(query)

我在哪里犯错误?

提前致谢。

4

1 回答 1

0

CloudWatch 中的 ListMetrics API 调用仅返回指标定义。您在 ListMetrics 调用的响应中看到的值不是数据点值,而是维度(名称,值)对,它是指标定义的一部分,以及指标名称和命名空间。

为了获取您提交的数据点值,请使用GetMetricStatistics API 调用。您不能为一组指标调用它。它仅适用于单个指标并返回请求时间间隔的数据点值。将其视为获取数据点以构建单个图表的调用。

您的整体逻辑可能是这样的:1) 调用 ListMetrics 2) 对于 ListMetrics 中返回的每个结果,调用 GetMetricStatistics。

于 2013-03-10T21:32:49.493 回答