基于连接的数据来源创建警报 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

基于连接的数据来源创建警报

您可以创建警报,监控源自非 CloudWatch 中的数据来源的指标。有关创建与这些其他数据来源的连接的更多信息,请参阅查询来自其他数据来源的指标

针对您已连接的数据来源的指标创建警报
  1. 访问 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

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

  3. 选择多来源查询选项卡。

  4. 对于数据来源,选择要使用的数据来源。

  5. 查询生成器会提示您输入查询所需的信息,以检索用于警报的指标。每个数据来源的工作流程都不同,并且这些工作流程都是针对数据来源量身定制的。例如,对于 Amazon Managed Service for Prometheus 和 Prometheus 数据来源,会出现一个带有查询助手的 PromQL 查询编辑器框。

  6. 完成查询构造后,选择图表查询

  7. 如果样本图表看起来像您所期望的那样,请选择创建警报

  8. 出现指定指标和条件页面。如果您使用的查询生成多个时间序列,您会在页面顶部看到一个警告横幅。如果这样做,请在聚合函数中选择一个用于聚合时间序列的函数。

  9. (可选)为警报添加标签

  10. 对于每当 your-metric-name 为……,选择大于大于/等于小于/等于小于。然后,对于相比……,为您的阈值指定一个数值。

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

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

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

  13. 选择下一步

  14. 对于通知,选择当您的警报转换为 ALARMOKINSUFFICIENT_DATA 状态时要通知的 Amazon SNS 主题。

    1. (可选)要为相同告警状态或不同告警状态发送多个通知,请选择 Add notification(添加通知)。

      注意

      我们建议您将警报设置为在进入数据不足状态以及进入警报状态时采取行动。这是因为连接到数据来源的 Lambda 函数的许多问题都可能导致警报转换为数据不足

    2. (可选)如果无需发送 Amazon SNS 通知,请选择移除

  15. 要让警报执行 Auto Scaling、EC2、Lambda 或 Systems Manager 操作,请选择相应的按钮,然后选择警报状态和要执行的操作。如果您选择 Lambda 函数作为警报操作,则需要指定函数名称或 ARN,并且可以选择该函数的特定版本。

    告警只有在进入“ALARM(告警)”状态时才能执行 Systems Manager 操作。有关 Systems Manager 操作的更多信息,请参阅将 CloudWatch 配置为通过告警创建 OpsItems 事件创建

    注意

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

  16. 选择下一步

  17. Name and description(名称和描述)下,输入告警的名称和描述,然后选择 Next(下一步)。名称必须仅包含 UTF-8 字符,并且不能包含 ASCII 控制字符。描述可以包含 Markdown 格式,该格式仅在 CloudWatch 控制台的警报详细信息选项卡中显示。Markdown 非常适合用于向运行手册或其他内部资源添加链接。

    提示

    警报名称只能包含 UTF-8 字符。不能包含 ASCII 控制字符。

  18. Preview and create(预览和创建)下,确认告警的信息和条件正确,然后选择 Create alarm(创建告警)。

有关已连接数据来源警报的详细信息

  • 当 CloudWatch 评估警报时,即使警报的时间长于一分钟,也会每分钟评估一次。要使警报起作用,Lambda 函数必须能够返回从任何一分钟开始的时间戳列表,而不仅仅是周期长度的倍数。这些时间戳必须相隔一个周期长度。

    因此,如果 Lambda 查询的数据来源只能返回周期长度的倍数的时间戳,则该函数应对获取的数据“重新采样”以匹配 GetMetricData 请求所期望的时间戳。

    例如,每分钟评估一个周期为五分钟的警报,使用五分钟的窗口,每次偏移一分钟。在本例中:

    • 对于在 12:15:00 进行的警报评估,CloudWatch 预计数据点的时间戳为 12:00:0012:05:0012:10:00

    • 然后,对于在 12:16:00 进行的警报评估,CloudWatch 预计数据点的时间戳为 12:01:0012:06:0012:11:00

  • 当 CloudWatch 评估警报时,Lambda 函数返回的与预期时间戳不一致的任何数据点都将被丢弃,并使用剩余的预期数据点对警报进行评估。例如,当在 12:15:00 对警报进行评估时,其期望的数据的时间戳为 12:00:0012:05:0012:10:00。如果收到时间戳为 12:00:0012:05:0012:06:0012:10:00 的数据,则 12:06:00 的数据将被丢弃,CloudWatch 会使用其他时间戳评估警报。

    然后,在 12:16:00 的下一次评估中,其期望的数据的时间戳为 12:01:0012:06:0012:11:00。如果只有时间戳为 12:00:0012:05:0012:10:00 的数据,则所有这些数据点都将在 12:16:00 被忽略,警报会根据您指定的警报处理缺失数据的方式转换状态。有关更多信息,请参阅评估告警

  • 我们建议您创建这些警报,以便在其转换为 INSUFFICIENT_DATA 状态时采取行动,因为无论您设置警报以何种方式处理缺失数据,多个 Lambda 函数失败用例都会将警报转换为 INSUFFICIENT_DATA

  • 如果 Lambda 函数返回错误或返回部分数据:

    • 如果在调用 Lambda 函数时出现权限问题,则警报会根据您在创建警报时指定的缺失数据处理方式,开始进行缺失数据转换。

    • 如果 Lambda 函数返回 'StatusCode' = 'PartialData',则警报评估失败,警报将在尝试三次后转换为 INSUFFICIENT_DATA,这大约需要三分钟。

    • 任何其他来自 Lambda 函数的错误都会导致警报转换为 INSUFFICIENT_DATA

  • 如果 Lambda 函数请求的指标有一定的延迟,以至于最后一个数据点总是缺失,则应采用相应的解决方法。您可以创建 M 个警报(共 N 个)或延长警报的评估周期。有关 M 个警报(共 N 个)的更多信息,请参阅 评估告警