python - 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 个表达式,其中一个指标查询返回警报数据。
我不确定我在这里做错了什么。谢谢
解决方案
Id 必须以小写字母开头,尝试将CPU
and更改Net
为cpu
and net
。
推荐阅读
- shader - 像素着色器中的碰撞检查
- javascript - How to place many divs horizontally automatically?
- git - --mirror 在尝试删除 git 历史记录中的文件时不能与 refspecs 结合使用
- javascript - 如何在 Google Apps 脚本中查找和替换值?
- php - 如何在 WooCommerce 中显示自定义产品描述页面?
- html - 如何在 DIV 的左右创建波浪形边框
- sonarqube - 如何配置 SonarAnalyzer.CSharp S1451 使用 .editorconfig 时跟踪缺少版权和许可标头
- python - YouTube-DL Python 输出文件格式不是 mp4
- oracle - 我正在尝试移动一些行并将它们转换为列
- java - 使用 Tableau Server 生成备份时出错