我有一些来自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)我在哪里犯了错?
提前谢谢。
发布于 2013-03-11 05:32:49
CloudWatch中的ListMetrics API调用仅返回指标定义。您在ListMetrics调用的响应中看到的值不是数据点的值,而是维度(名称、值)对,它是指标定义的一部分,还有指标名称和名称空间。
为了获得您提交的数据点值,使用GetMetricStatistics API调用。您不能为一组指标调用它。它只适用于单个指标,并返回请求时间间隔的数据点值。可以将其视为获取数据点以构建单个图表的调用。
您的总体逻辑可能是这样的: 1)调用ListMetrics 2)对于ListMetrics中返回的每个结果,调用GetMetricStatistics。
https://stackoverflow.com/questions/13267484
复制相似问题