如何使用AWSSDK.CloudWatch检索AWS Cloudwatch指标?

时间:2018-07-20 15:18:42

标签: amazon-web-services amazon-cloudwatch

我正在尝试使用AWSSDK.CloudWatch软件包检索有关我的负载均衡器的数据,但是实际上并没有从中获得任何价值的运气。似乎无论如何,响应中MetricData的Values属性都是一个空数组。

AmazonCloudWatchClient client = new AmazonCloudWatchClient("MyAccessKeyId", "MySecretAccessKey", Amazon.RegionEndpoint.MyRegion);
GetMetricDataRequest request = new GetMetricDataRequest()
   {
    StartTime = DateTime.UtcNow.AddHours(-12),
    EndTime = DateTime.UtcNow,
    MetricDataQueries = new List<MetricDataQuery>()
    {
        new MetricDataQuery()
        {
            Id = "MyMetric",
            MetricStat = new MetricStat()
            {
                Metric = new Metric()
                {
                    Namespace = "AWS/ELB",
                    MetricName = "HealthyHostCount",
                    Dimensions = new List<Dimension>()
                    {
                        new Dimension()
                        {
                            Name = "LoadBalancerName",
                            Value = "MyLoadBalancerName"
                        }
                    }
                },
                Period = 300,
                Stat = "Sum",
                Unit = "None"
            }                        
        }
    },
    ScanBy = ScanBy.TimestampDescending,
    MaxDatapoints = 1000
};
GetMetricDataResponse response = client.GetMetricData(request);

我正在努力寻找与此相关的任何示例。我希望能够获得每个负载均衡器的这个值。

1 个答案:

答案 0 :(得分:0)

许多因素可能导致查询不返回任何数据。这就是我调试方法的方式:

  1. 回复200 OK是?如果不是,则查询本身有问题,缺少必需的参数,凭据无效或策略不允许GetMetricData调用。
  2. 度量标准名称正确吗?完整的度量标准名称必须正确,包括名称空间,度量标准名称和所有维度。 CloudWatch不会区分没有数据大小写和度量标准大小写,您只会获得没有数据。这是您请求中的一个潜在问题,如果您的主机位于目标组中,则可能需要指定目标组维度。
  3. 区域端点正确吗?指标按地区分开,您必须调用正确的地区端点。
  4. 凭据来自正确的帐户吗?
  5. 单位正确吗?如果不确定单位,请不要指定。这是您的请求可能有问题的第二件事,该指标的单位为Count。不指定单位即可尝试。
  6. 时间范围正确吗?是否在您请求的时间范围内发布了数据?