创建 Metrics Insights 告警 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建 Metrics Insights 告警

使用控制台为 Metrics Insights 查询创建告警
  1. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,依次选择 Metrics(指标)、All metrics(所有指标)。

  3. 选择 Query(查询)选项卡。

  4. (可选)要运行预构建的示例查询,请选择 Add query(添加查询),然后选择要运行的查询。或者,您可以选择 Editor(编辑器)来编辑示例查询,然后选择 Run(运行)以运行修改后的查询。

  5. 要创建您自己的查询,您可以使用 Builder(构建器)视图、Editor(编辑器)视图或两者的组合。您可以随时在两个视图之间切换,并在两个视图中查看正在进行的工作。

    Builder(构建器)视图中,您可以浏览并选择指标命名空间、指标名称、筛选条件、分组和排序选项。对于其中每个选项,查询构建器都会为您提供您环境中的可选项列表,供您选择。

    Editor(编辑器)视图中,您可以开始编写查询。输入时,编辑器会根据您当前已输入的字符提供建议。

    重要

    要为 Metrics Insights 查询设置告警,该查询必须返回单个时间序列。如果该查询包含 GROUP BY 语句,则 GROUP BY 语句必须封装在指标数学表达式中,该表达式仅返回一个时间序列作为其最终结果。

  6. 如果对查询感到满意,请选择 Run(运行)。

  7. 选择创建警报

  8. 条件下面,指定以下内容:

    1. 对于 Whenever metric is(每当指标),指定指标是必须大于、小于还是等于阈值。在于... 下面,指定阈值。

    2. 选择其他配置。对于触发警报的数据点数,指定必须有多少个评估期(数据点)处于 ALARM 状态才能触发警报。如果此处的两个值匹配,则会创建一个告警;如果多个连续评估期违例,该告警将变为 ALARM(告警)状态。

      要创建“M(最大为 N)”告警,为第一个值指定的数字应小于为第二个值指定的数字。有关更多信息,请参阅评估告警

    3. 对于缺失数据处理,选择在缺失某些数据点时的警报行为。有关更多信息,请参阅配置 CloudWatch 告警处理缺失数据的方式

  9. 选择下一步

  10. 通知下面,选择一个在警报处于 ALARMOKINSUFFICIENT_DATA 状态时通知的 SNS 主题。

    要使告警为相同告警状态或不同告警状态发送多个通知,请选择添加通知

    要让警报不发送通知,请选择删除

  11. 要让告警执行 Auto Scaling、EC2 或 Systems Manager 操作,请选择相应的按钮,然后选择告警状态和要执行的操作。告警只有在进入“ALARM(告警)”状态时才能执行 Systems Manager 操作。有关 Systems Manager 操作的更多信息,请参阅将 CloudWatch 配置为通过告警创建 OpsItems 事件创建

    注意

    要创建执行 SSM Incident Manager 操作的告警,您必须具有特定的权限。有关更多信息,请参阅 Amazon Systems Manager Incident Manager 的基于身份的策略示例

  12. 在完成后,选择下一步

  13. 输入警报的名称和说明。名称只能包含 ASCII 字符。然后选择下一步

  14. Preview and create 下面,确认具有所需的信息和条件,然后选择 Create alarm

使用 Amazon CLI 为 Metrics Insights 查询创建告警
  • 使用 put-metric-alarm 命令并在 metrics 参数中指定 Metrics Insights 查询。例如,以下命令将设置一个告警,如果任何实例的 CPU 利用率超过 50%,该告警将进入 ALARM 状态。

    aws cloudwatch put-metric-alarm --alarm-name Metrics-Insights-alarm --evaluation-periods 1 --comparison-operator GreaterThanThreshold --metrics '[{"Id":"m1","Expression":"SELECT MAX(CPUUtilization) FROM SCHEMA(\"AWS/EC2\", InstanceId)", "Period":60}]' --threshold 50