Amazon web services 从AWS CloudWatch度量数学搜索函数获取单个时间序列

Amazon web services 从AWS CloudWatch度量数学搜索函数获取单个时间序列,amazon-web-services,amazon-cloudwatch,Amazon Web Services,Amazon Cloudwatch,我正在尝试创建一个CloudWatch警报,用于检测组中的任何实例是否超过所用内存的x%,并为此构建了以下度量数学查询: SEARCH({CWAgent,InstanceId}MetricName=“mem_used_percent”,“Maximum”,300) 这很好,但是CloudWatch控制台抱怨“报警表达式必须恰好创建一个时间序列。”。我相信是这样,;上面的查询应该(并且确实)返回一个非多维的奇异线图结果 如何让这些数据以CloudWatch创建警报所需的格式返回?我的另一种选择是按

我正在尝试创建一个CloudWatch警报,用于检测组中的任何实例是否超过所用内存的x%,并为此构建了以下度量数学查询:

SEARCH({CWAgent,InstanceId}MetricName=“mem_used_percent”,“Maximum”,300)

这很好,但是CloudWatch控制台抱怨“报警表达式必须恰好创建一个时间序列。”。我相信是这样,;上面的查询应该(并且确实)返回一个非多维的奇异线图结果

如何让这些数据以CloudWatch创建警报所需的格式返回?我的另一种选择是按实例创建一个新的报警,但是管理报警的创建和销毁似乎更复杂

实例上用于收集度量的CloudWatch配置:

  "metrics":{
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected":{
      "mem": {
         "measurement": [
           "used_percent"
        ]
      },
      "disk": {
         "measurement": [ "used_percent" ],
         "metrics_collection_interval": 60,
         "resources": [ "/" ]
     }
    }

此示例为区域中的每个实例显示一行,显示AWS/EC2命名空间中的CPUUtilization度量

SEARCH(' {AWS/EC2,InstanceId} MetricName="CPUUtilization" ', 'Average', 300)
将InstanceId更改为InstanceType会更改图形,以便为区域中使用的每个实例类型显示一行。来自每种类型的所有实例的数据聚合到该实例类型的一行中

SEARCH(' {AWS/EC2,InstanceType} MetricName="CPUUtilization" ', 'Average', 300)
删除维度名称但将名称空间保留在模式中(如以下示例所示),将导致一行显示区域中所有实例的CPUUUtilization度量的聚合

SEARCH(' {AWS/EC2} MetricName="CPUUtilization" ', 'Average', 300)
有关搜索查询的详细说明,请参阅


要选择指标,请参阅链接以获得详细说明。

谢谢@Keyur Shrimali。然而,问题不在于行的数量,而在于时间序列的数量。您发布的第三个示例(删除InstanceType)创建了一个单数行,但却是一个多时间序列,不能用于创建CloudWatch报警。如问题“上面的查询应该(并且确实)返回一个非多维的奇异线图结果”中所述