

# 根据指标数学表达式创建 CloudWatch 告警
<a name="Create-alarm-on-metric-math-expression"></a>

指标告警用于评估您根据单个指标或指标数学表达式（将一个或多个指标组合或转换成一个时间序列）所定义的时间序列，此类时间序列可提供更符合您独特需求的洞察数据。要基于指标数学表达式创建告警，请选择表达式中要使用的一个或多个 CloudWatch 指标。然后，指定表达式、阈值和评估期。

无法创建基于 **SEARCH（搜索）**表达式的告警。只有基于 Metrics Insights SQL 查询的告警才能在多个时间序列上运行。

**根据指标数学表达式创建告警**

1. 通过 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 打开 CloudWatch 控制台。

1. 在导航窗格中，选择 **Alarms**（告警），然后选择 **All alarms**（所有告警）。

1. 选择**创建警报**。

1. 选择 **Select Metric**（选择指标），然后执行以下操作之一:
   + 从 **AWS namespaces**（命名空间）下拉列表或 **Custom namespaces**（自定义命名空间）下拉列表中，选择命名空间。选择命名空间后，您可以继续选择选项，直到显示指标列表，您可以在其中选择正确指标旁边的复选框。
   + 使用搜索框查找指标、账户 ID、维度或资源 ID。输入指标、维度或资源 ID 后，您可以继续选择选项，直到显示指标列表，您可以在其中选择正确指标旁边的复选框。

1. （可选）如果要向指标数学表达式添加另一个指标，您可以使用搜索框查找特定指标。您可以向指标数学表达式添加多达 10 个指标。

1. 选择 **Graphed metrics**（绘制的指标）选项卡。对于您之前添加的每个指标，请执行以下操作:

   1. 在 **Statistic**（统计数据）列中，选择下拉菜单。在下拉菜单中，选择一个预定义的统计数据或百分位数。使用下拉菜单中的搜索框指定自定义百分位数。

   1. 在 **Period**（时间段）列下，选择下拉菜单。在下拉菜单中，选择一个预定义的评估期。

      在创建告警时，您可以指定 Y 轴图例是在左侧还是右侧显示。
**注意**  
在 CloudWatch 评估告警时，时间段会聚合到单个数据点中。

1. 选择 **Add math**（添加数学）下拉菜单，然后从预定义的指标数学表达式列表中选择 **Start with an empty expression**（从空表达式开始）。

   选择 **Start with an empty expression**（从空表达式开始）之后，系统将显示一个数学表达式框，您可以在其中应用或编辑数学表达式。

1. 在数学表达式框中，输入数学表达式，然后选择 **Apply**（应用）。

   选择 **Apply**（应用）之后，**Label**（标注）列旁边会显示一个 **ID** 列。

   要将一个指标或另一个指标数学表达式的结果用作当前数学表达式公式的一部分，您可以使用 **ID** 列下显示的值。要更改 **ID** 值，您可以选择当前值旁边的笔和纸图标。新值必须以小写字母开头，并且可以包含数字、字母和下划线符号。将 **ID** 值更改为更明显的名称也可以使告警图表更易于理解。

   有关可用于指标数学的函数的信息，请参阅 [指标数学语法和函数](using-metric-math.md#metric-math-syntax)。

1. （可选）在新数学表达式的公式中，使用指标和其他数学表达式的结果添加更多数学表达式。

1. 当您具有要用于告警的表达式时，请清除页面上每个其他表达式和每个指标左侧的复选框。只应选中要用于告警的表达式旁边的复选框。您为告警选择的表达式必须生成单个时间序列，并且仅在图表上显示一行。然后选择 **Select metric（选择指标）**。

   将显示 **Specify metric and conditions（指定指标和条件）**页面，其中显示一个图表以及有关您选择的数学表达式的其他信息。

1. 对于 **Whenever *expression* is（每当表达式）**，指定表达式是必须大于、小于还是等于阈值。在**于...** 下面，指定阈值。

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

   要创建“M（最大为 N）”告警，为第一个值指定的数字应小于为第二个值指定的数字。有关更多信息，请参阅 [告警评估](alarm-evaluation.md)。

1. 对于**缺失数据处理**，选择在缺失某些数据点时的警报行为。有关更多信息，请参阅 [配置 CloudWatch 告警处理缺失数据的方式](alarms-and-missing-data.md)。

1. 选择**下一步**。

1. 在**通知**下面，选择一个在警报处于 `ALARM`、`OK` 或 `INSUFFICIENT_DATA` 状态时通知的 SNS 主题。

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

   要让警报不发送通知，请选择**删除**。

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

   告警只有在进入“ALARM（告警）”状态时才能执行 Systems Manager 操作。有关 Systems Manager 操作的更多信息，请参阅[将 CloudWatch 配置为通过告警创建 OpsItems ](https://docs.aws.amazon.com/systems-manager/latest/userguide/OpsCenter-create-OpsItems-from-CloudWatch-Alarms.html)和[事件创建](https://docs.aws.amazon.com/incident-manager/latest/userguide/incident-creation.html)。
**注意**  
要创建执行 SSM Incident Manager 操作的告警，您必须具有特定的权限。有关更多信息，请参阅 [AWS Systems Manager Incident Manager 的基于身份的策略示例](https://docs.aws.amazon.com/incident-manager/latest/userguide/security_iam_id-based-policy-examples.html)。

1. 在完成后，选择**下一步**。

1. 输入警报的名称和说明。然后选择**下一步**。

   名称必须仅包含 UTF-8 字符，并且不能包含 ASCII 控制字符。描述可以包含 Markdown 格式，该格式仅在 CloudWatch 控制台的警报**详细信息**选项卡中显示。Markdown 非常适合用于向运行手册或其他内部资源添加链接。

1. 在 **Preview and create** 下面，确认具有所需的信息和条件，然后选择 **Create alarm**。

您还可以将警报添加到控制面板。有关更多信息，请参阅 [将警报添加到 CloudWatch 控制面板](add_alarm_dashboard.md)。