仅从Cloudwatch API获取值字段

时间:2012-11-07 10:10:18

标签: java amazon-web-services amazon-cloudwatch

我有一些从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)

我犯了错误?

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

您的整体逻辑可能如下所示:1)为ListMetrics中返回的每个结果调用ListMetrics 2),调用GetMetricStatistics。