【发布时间】:2020-06-12 00:01:29
【问题描述】:
我想创建一个基于多个指标数据触发自动缩放的云监视警报。由于 Cloud Watch 本身不支持此功能(如果我错了,请纠正我)。我想知道如何克服这个问题。
我们能否从不同的指标(例如 CPUUtilization、NetworkIn、NetworkOut)中获取数据,然后使用 mon-put-data 创建自定义指标并输入这些数据以创建新的指标以触发自动缩放?
【问题讨论】:
我想创建一个基于多个指标数据触发自动缩放的云监视警报。由于 Cloud Watch 本身不支持此功能(如果我错了,请纠正我)。我想知道如何克服这个问题。
我们能否从不同的指标(例如 CPUUtilization、NetworkIn、NetworkOut)中获取数据,然后使用 mon-put-data 创建自定义指标并输入这些数据以创建新的指标以触发自动缩放?
【问题讨论】:
是的 .. Cloudwatch 警报只能在单个 Cloudwatch 指标上触发,因此您需要根据自己的建议发布自己的“聚合”自定义指标和警报。
这是一篇描述使用自定义指标触发自动缩放的博文。
http://www.thatsgeeky.com/2012/01/autoscaling-with-custom-metrics/
【讨论】:
您现在可以使用 CloudWatch Metric Math。
指标数学使您能够查询多个 CloudWatch 指标并使用 数学表达式来根据这些指标创建新的时间序列。你 可以在 CloudWatch 控制台中可视化生成的时间序列,并 将它们添加到仪表板。
有关度量数学语法和函数的更多信息,请点击此处: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax
但是,需要注意的是没有逻辑运算符,您必须使用算术函数才能退出。
为了帮助碰到这里的人,发布一个示例: 假设您想在 CPUUtilization
m1 = Avg CPU Utilization % for 5mins
m2 = Avg Mem Utilization % for 5mins
然后:
Avg. CPU Utilization % < 20 for 5 mins AND Avg Mem Utilization % < 30 for 5mins ... (1)
与
相同(m1 - 20) / ABS([m1 - 20]) + (m2 - 30) / ABS([m2 - 30]) < 0 ... (2)
因此,定义您的两个指标并构建一个指标查询,该查询类似于上面等式 (2) 的 LHS。将阈值设置为0,并将比较运算符设置为LessThanThreshold。
【讨论】:
现在支持。你可以检查 https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html 相同。
例如,您可以使用 (CPU Utilization>80) OR (MEMORY Consumed>55)
【讨论】: