【问题标题】:How to retrieve cloudwatch metrics from an list of instances如何从实例列表中检索 cloudwatch 指标
【发布时间】:2018-08-01 21:35:13
【问题描述】:

我有多个实例。我需要使用 aws cli 从其中的一个子集(不是全部)中检索一些指标。我曾尝试多次将 InstanceId 指定为 Dimension,但它只考虑值中的一个。例如上面的命令,只返回 de metric 值,例如 i-xxxxxx (ignores i-yyyyyyy)

aws cloudwatch get-metric-statistics  --namespace AWS/EC2 \
    --metric-name CPUUtilization \
    --statistics Maximum
    --dimensions Name=InstanceId,Value=i-yyyyyyyyyy Name=InstanceId,Value=i-xxxxxxxxx \
    --start-time 2018-08-01T00:00:00Z --end-time 2018-08-01T10:00:00Z --period 300 

补充一点:子集可以通过使用标签过滤实例列表来获得:

aws ec2 describe-instances --filter Name=tag:app,Values=myapp \
    --query 'Reservations[*].Instances[*].InstanceId' --output text

【问题讨论】:

    标签: amazon-web-services amazon-cloudwatch


    【解决方案1】:

    您使用了错误的 API:get-metric-statistics 旨在返回单个指标的时间序列数据,该指标由其所有维度标识。我怀疑 CLI 将此字段解释为关联数组,因此第二个实例 ID 覆盖了第一个。

    最简单的解决方案(假设您在 Linux 上使用 bash)是使用 for 循环来检索每组指标:

    for instance in i-yyyyyyyyyy i-xxxxxxxxx
    do aws cloudwatch get-metric-statistics \
                      --dimensions "Name=InstanceId,Value=${instance}" \
                      ...
    done
    

    【讨论】:

      猜你喜欢
      • 2015-05-19
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多