代码之家  ›  专栏  ›  技术社区  ›  patrick

对如何从cloudwatch api获取大量指标感到困惑

  •  0
  • patrick  · 技术社区  · 9 年前

    我需要对我的各种amazon ec2实例进行一些监控,因此我的计划最初是创建一个带有数字小部件的仪表板,并选择我感兴趣的各种事情,例如“CPUUtilization”,然后我可以获取该仪表板并访问所有这些当前度量值。然而,当我打电话获取仪表板时,我收到的身体是:

    {"widgets"=>[{"type"=>"metric", "x"=>0, "y"=>0, "width"=>24, "height"=>6, "properties"=>{"view"=>"singleValue", "metrics"=>[["AWS/EC2", "CPUUtilization", "InstanceId", "i-0ea0081d91f6e4aff"], [".", "DiskWriteBytes", ".", "."], [".", "CPUCreditUsage", ".", "."], [".", "StatusCheckFailed", ".", "."], [".", "NetworkPacketsIn", ".", "."], [".", "NetworkOut", ".", "."], [".", "StatusCheckFailed_System", ".", "."], [".", "CPUCreditBalance", ".", "."], [".", "StatusCheckFailed_Instance", ".", "."], [".", "NetworkIn", ".", "."], [".", "NetworkPacketsOut", ".", "."], [".", "DiskReadBytes", ".", "."], [".", "DiskWriteOps", ".", "."], [".", "DiskReadOps", ".", "."]], "region"=>"us-east-1"}}]}
    

    1) 它想要一个单一指标?尽管文档描述了该方法“列出了指定的指标”

    输入是一个对象,而不是数组,要使用此方法,我必须执行以下操作:

    client.list_metrics({
      namespace: "AWS/EC2",
      metric_name: "CPUUtilization",
      dimensions: [
        {
          name: "InstanceId", 
          value: "i-0fc0181c98e6e4a66"
        },
      ],
    })
    

    #<struct Aws::CloudWatch::Types::ListMetricsOutput metrics=[#<struct Aws::CloudWatch::Types::Metric namespace="AWS/EC2", metric_name="CPUUtilization", dimensions=[#<struct Aws::CloudWatch::Types::Dimension name="InstanceId", value="i-0fc0181c98e6e4a66">]>], next_token=nil>
    

    这导致2)它只返回度量名称,没有实际值。。。

    我做错了什么?

    我如何简单地为各种实例ID请求一系列指标,并得到包含我请求的指标的实际指标值的响应?

    1 回复  |  直到 9 年前
        1
  •  0
  •   Dejan Peretin    9 年前

    简而言之,您无法在对GetMetricStatistics API的单个请求中获取多个度量的数据。您首先列出指标的方法是正确的。

    您可以使用ListMetrics API,只设置名称空间和度量名称(删除要在其中设置确切实例的维度)。这将为您提供过去2周内运行的所有实例的指标。然后,您需要对它们进行循环,并为每一个调用GetMetricStatistics。

    您尝试使用的仪表板API用于操作仪表板(创建、删除、编辑仪表板和仪表板上的内容)。这些API不会提供任何数据。然而,当仪表板API发布时,他们还发布了一篇关于如何使用它们的博客文章。在这篇文章中,他们使用了一个示例,说明如何使用API创建一个包含所有运行EC2实例的指标的仪表板。也许这对你有用:

    https://aws.amazon.com/blogs/aws/new-api-cloudformation-support-for-amazon-cloudwatch-dashboards/