为什么CloudWatch只接受Dimension作为集合?

时间:2014-08-20 12:12:01

标签: amazon-web-services amazon-cloudwatch

调查CloudWatch api我发现了以下情况:

GetMetricStatisticsRequest对象具有以下方法: " setDimensions(集合维度) 描述度量标准质量的维度列表。" link to API

因此,我假设可以传递一个Dimensions数组并获取每个维度的Datapoints。所以,一个例子是:

    ArrayList<Dimension> dimensions = new ArrayList<Dimension>();
    Dimension firstDimension = new Dimension();
    firstDimension.setName("InstanceId");
    firstDimension.setValue(instanceId1);
    dimensions.add(firstDimension);
    Dimension secondDimension = new Dimension();
    secondDimension.setName("InstanceId");
    secondDimension.setValue(instanceId2);
    dimensions.add(secondDimension);
    metricStatisticRequest.setDimensions(dimensions);
    ...
    GetMetricStatisticsResult results = cloudWatchClient.getMetricStatistics(metricStatisticRequest);
    for(Datapoint dataPoint : results.getDatapoints())
    {
        // do something with datapoints...
        // here I get all the datapoints, of both firstDimension and secondDimension are mixed up
    }

确实有效,只是没有办法确定哪个Datapoint属于哪个Dimension:返回的Datapoints集合包含指标的所有Datapoints。

如果无法区分数据点,则没有理由将多个维度传递给GetMetricStatisticsRequest。那么,为什么CloudWatch API只接收集合?在母校中拥有多个维度的重点是什么?我错过了什么......?

感谢。

1 个答案:

答案 0 :(得分:0)

你误解了概念维度。

在CloudWatch中,每个指标都必须具有命名空间和指标名称。它还可以包含多达十个维度 - 这些是指标,名称/值对的附加属性,可帮助您唯一标识它们。

例如,每个实例的EC2指标只有&#34; InstanceId&#34;维度,但每服务结算指标有两个维度:&#34;服务&#34;和&#34;货币&#34;。

有关CloudWatch指标概念的更多信息,请点击此处: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html

所以你想要做的就是发送2个GetMetricStatistics调用,一个使用InstanceId = ID1,另一个使用InstanceID = ID2