我从您的问题中了解到以下要求:
- 您有多个指标并希望在配置警报时使用逻辑 OR 条件,例如 (avg metric1 > x || avg metric2 > y) ==> 将警报状态设置为 ALARM
- 当弹性 beantalk 在横向扩展期间启动新实例时,您希望警报考虑新指标可用。
- 您希望在弹性 beantalk 扩展时不考虑旧指标。
我认为这目前是不可能的。
在 aws 讨论论坛 [1] 上正在进行讨论,这表明至少 (1) 可以使用 Metric Math。公制数学功能支持最大。10 个指标。
解决方案
您需要做的是,创建一个单一的指标来传输是否应该触发警报的信息(“计算指标”)。有多种方法可以实现这一点:
- 对于复杂的指标,您可以编写一个 bash 脚本并使用 cron 在 EC2 实例上运行它。该脚本将首先使用维度过滤器('list-metrics')查询现有指标,然后收集每个指标('get-metric-data'),聚合它,然后推送计算的指标数据点('put-metric-data ')。
- 如果指标相当简单,您可以尝试AWS put-metric-data 脚本 [2]的聚合选项:
option_settings:
"aws:elasticbeanstalk:customoption" :
CloudWatchMetrics : "--mem-util --mem-used --mem-avail --disk-space-util --disk-space-used --disk-space-avail --disk-path=/ --auto-scaling --aggregated"
聚合选项的文档说:
为区域添加实例类型、AMI ID 和整体的聚合指标。
参考
[1] https://forums.aws.amazon.com/thread.jspa?threadID=94984
[2] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html#put -度量数据