如何为自定义 CloudWatch 指标使用多个单独的维度?

Den*_*boy 5 amazon-web-services autoscaling amazon-cloudwatch amazon-cloudwatch-metrics

这样我们就可以为自定义指标配置维度。

{
   "metrics":{
      "append_dimensions":{
         "AutoScalingGroupName":"${!aws:AutoScalingGroupName}",
         "ImageId":"${!aws:ImageId}",
         "InstanceId":"${!aws:InstanceId}",
         "InstanceType":"${!aws:InstanceType}"
      },
      "metrics_collected":{
         "mem":{
            "measurement":[
               "mem_used_percent"
            ]
         },
         "swap":{
            "measurement":[
               "swap_used_percent"
            ]
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

这给出了类似的东西: 在此输入图像描述

现在我尝试为维度自动缩放组创建警报:

  MemoryAlarmHigh:
   Type: AWS::CloudWatch::Alarm
   Properties:
     EvaluationPeriods: '1'
     Statistic: Average
     Threshold: '70'
     AlarmDescription: Go in Alarm is memory is higher than 70% for 60 seconds
     Period: '60'
     AlarmActions:
     - Ref: ScaleUpPolicy
     Namespace: CWAgent
     Dimensions:
     - Name: AutoScalingGroupName
       Value: !Ref ASG
     ComparisonOperator: GreaterThanThreshold
     MetricName: xxx
Run Code Online (Sandbox Code Playgroud)

这是行不通的。我得到的数据不足。现在当我使用

            {
              "metrics": {
                "append_dimensions": {
                  "AutoScalingGroupName": "${!aws:AutoScalingGroupName}"
                },
                "metrics_collected": {
                  "mem": {
                    "measurement": [
                      "mem_used_percent"
                    ]
                  }
                }
              }
            }
Run Code Online (Sandbox Code Playgroud)

我得到: 在此输入图像描述

现在警报器可以工作了。但我想使用多个维度,但单独使用它们(就像在 EC2 命名空间中),这样我就可以使用我的警报。

我怎样才能做到这一点?

Unk*_*nts 4

尝试设置aggregation_dimensions.

像这样:

{
   "metrics":{
      "append_dimensions":{
         "AutoScalingGroupName":"${!aws:AutoScalingGroupName}",
         "ImageId":"${!aws:ImageId}",
         "InstanceId":"${!aws:InstanceId}",
         "InstanceType":"${!aws:InstanceType}"
      },
      "aggregation_dimensions" : [["AutoScalingGroupName"]],
      "metrics_collected":{
         "mem":{
            "measurement":[
               "mem_used_percent"
            ]
         },
         "swap":{
            "measurement":[
               "swap_used_percent"
            ]
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html#CloudWatch-Agent-Configuration-File-Metricssection