首页 > 解决方案 > Boto3 CloudWatch - 具有多个指标和数学表达式的 put_metric_alarm

问题描述

我正在尝试使用 Boto3 - CloudWatch - put_metric_alarm 创建警报并且遇到困难。

以下是提供给函数的关键字参数:

{'ActionsEnabled': False,
 'AlarmDescription': 'Monitor for Idle instances',
 'AlarmName': 'IdleComponents',
 'ComparisonOperator': 'GreaterThanThreshold',
 'DatapointsToAlarm': 6,
 'EvaluationPeriods': 6,
 'Metrics': [{'Id': 'CPU',
              'MetricStat': {'Metric': {'Dimensions': [{'Name': 'InstanceId',
                                                        'Value': 'i-XX'}],
                                        'MetricName': 'CPUUtilization',
                                        'Namespace': 'AWS/EC2'},
                             'Period': 300,
                             'Stat': 'Average',
                             'Unit': 'Percent'},
              'ReturnData': False},
             {'Id': 'Net',
              'MetricStat': {'Metric': {'Dimensions': [{'Name': 'InstanceId',
                                                        'Value': 'i-XX'}],
                                        'MetricName': 'NetworkIn',
                                        'Namespace': 'AWS/EC2'},
                             'Period': 300,
                             'Stat': 'Average',
                             'Unit': 'Megabytes'},
              'ReturnData': False},
             {'Expression': 'IF(CPU < 5, 1, 0) AND IF(Net < 5, 1, 0)',
              'Id': 'e1',
              'ReturnData': True}],
 'Threshold': 0}

从目视检查来看,这似乎是一个有效的输入,并且在 CloudWatch 控制台上手动创建表达式时,表达式可以正常工作,但是通过 Boto3 运行时,我得到:

botocore.exceptions.ClientError:调用 PutMetricAlarm 操作时发生错误 (ValidationError):指标列表无效

此处的文档声称您可以定义一个警报,以便您可以使用多达 10 个指标和 10 个表达式,其中一个指标查询返回警报数据。

我不确定我在这里做错了什么。谢谢

标签: pythonamazon-web-servicesboto3amazon-cloudwatch

解决方案


Id 必须以小写字母开头,尝试将CPUand更改Netcpuand net


推荐阅读