将 AutoscalingGroup 的 adding/removing 个 EC2 实例动态添加到 AWS Dashboard Metric Widget

Dynamically adding/removing EC2 instances of an AutoscalingGroup to AWS Dashboard Metric Widget

我正在尝试创建一个仪表板并希望一个小部件在我的自动缩放中显示 ALL EC2 实例的 CPUUtilization 图。 每当自动缩放规则添加新实例时,仪表板小部件应自动包含新 EC2 实例的图表,当删除实例时,它应删除该实例的图表。

当我 select 将自动缩放组作为指标时,它只在图表中显示一条线,尽管该自动缩放组中有 4 个实例。

这可能吗? 如果是,我做错了什么?

AWS 中的自动缩放组基于 Launch 配置,其中包含一个 monitoring 复选框。 如果您启用此框,添加到 ASG 的每个实例都将在 Cloudwatch 监控下启动。 确保勾选此框后,您可以找到一种方法将有关单独加入组的新实例的警报加载到仪表板。

AWS 团队发布了一个 Lambda 函数来自动更新您的仪表板:here is the link

脚本:

  • 加载指定的 CloudWatch 仪表板
  • 查找显示 EC2 实例指标的所有图形小部件
  • 使用配置的参数调用 EC2 DescribeInstances API 以发现该区域中该图的当前 EC2 实例
  • 根据需要更新小部件
  • 如果任何小部件定义已更改,则保存 CloudWatch 仪表板

但它也有局限性:

  • 它只会更新第一个指标是 EC2 实例指标的图表,图表上的所有其他指标都将替换为这些指标
  • 指标不能有自定义周期或统计数据,将使用图形默认值

来自this other question

的复制粘贴

迟到总比不到好,似乎 CloudWatch has implemented 一个带有度量表达式的 SEARCH 函数。

文档中有很好的examples

SEARCH(' {AWS/EC2,InstanceId} MetricName="CPUUtilization" ', 'Average', 300)