Amazon CloudWatch
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon CloudWatch 概念

下面是便于您了解和使用 Amazon CloudWatch 的核心术语和概念:

命名空间

命名空间 是 CloudWatch 指标的容器。不同命名空间中的指标彼此独立,因此来自不同应用程序的指标不会被错误地聚合到相同的统计信息中。

无默认命名空间。您必须为发布到 CloudWatch 的每个数据点指定命名空间。在创建指标时,您可以指定命名空间名称。这些名称必须包含有效的 XML 字符,且长度必须少于 256 个字符。可用字符包括:字母数字字符 (0-9A-Za-z)、句点 (.)、连字符 (-)、下划线 (_)、正斜杠 (/)、井号 (#) 和冒号 (:)。

AWS 命名空间使用以下命名约定:AWS/service。例如,Amazon EC2 使用 AWS/EC2 命名空间。有关 AWS 命名空间的列表,请参阅 AWS 命名空间

指标

指标 是 CloudWatch 中的基本概念。指标表示一个发布到 CloudWatch 并且按时间排序的数据点集。可将指标视为要监控的变量,而数据点代表该变量随时间变化的值。例如,特定 EC2 实例的 CPU 使用率是 Amazon EC2 提供的一个指标。数据点本身可来自于您从中收集数据的任何应用程序或业务活动。

AWS 服务将指标发送给 CloudWatch,您可将自己的自定义指标发送给 CloudWatch。可以以您选择的任何顺序和任何速率添加数据点。您可以按一组有序的时间序列数据来检索关于这些数据点的统计数据。

指标仅存在于创建它们的区域中。指标无法删除,但如果在 15 个月后没有向指标发布新数据,这些指标将自动过期。依据滚动机制,15 个月之前的数据点将过期;当新的数据点进入时,15 个月之前的数据将被丢弃。

指标是通过一个名称、一个命名空间以及零个或多个维度进行唯一定义的。每个数据点都有一个时间戳和一个度量单位 (可选)。当请求统计信息时,返回的数据流通过命名空间、指标名称、维度以及单位 (可选) 进行识别。

有关更多信息,请参阅 查看可用指标发布自定义指标

时间戳

每个指标数据点必须标记有一个时间戳。时间戳最长可以为过去的两周和将来的两小时。如果不提供时间戳,CloudWatch 会根据收到数据点的时间创建一个时间戳。

时间戳为 dateTime 对象,包含完整的日期以及小时、分钟和秒 (例如,2016-10-31T23:59:59Z)。有关更多信息,请参阅 dateTime。尽管没有强制要求,但我们建议您使用协调世界时 (UTC)。从 CloudWatch 检索统计数据时,所有时间均采用 UTC。

CloudWatch 警报基于当前时间 (UTC) 检查指标。发送到 CloudWatch 并且时间戳为非 UTC 时间的自定义指标会导致警报显示数据不足状态或产生延迟警报。

指标保留

CloudWatch 将保留指标数据,如下所示:

  • 时间段短于 60 秒的数据点的可用时间为 3 小时。这些数据点是高精度自定义指标。

  • 时间段为 60 秒 (1 分钟) 的数据点可用 15 天

  • 时间段为 300 秒 (5 分钟) 的数据点可用 63 天

  • 时间段为 3600 秒 (1 小时) 的数据点可用 455 天 (15 个月)

最初以较短时间段发布的数据点汇总在一起,可实现长期存储。例如,如果您使用 1 分钟的时间段收集数据,数据以 1 分钟的精度保持 15 天可用。15 天之后,此数据仍可用,但汇总在一起,只能以 5 分钟的精度检索。63 天之后,数据进一步汇总,以 1 小时的精度提供。

自 2016 年 7 月 9 日起,CloudWatch 开始保留 5 分钟和 1 小时指标数据。

维度

维度 是用于唯一标识指标的名称/值对。您可以为一个指标分配最多 10 个维度。

每个指标包含用于描述该指标的特定特征,您可以将维度理解为这些特征的类别。维度可以帮助您设计统计数据计划的结构。因为维度是指标的唯一标识符的一部分,因此无论您在何时向一个指标添加唯一名称/值对,都会创建该指标的一个新变体。

向 CloudWatch 发送数据的 AWS 服务将向每个指标附加维度。您可使用维度筛选 CloudWatch 返回的结果。例如,您可通过在搜索指标时指定 InstanceId 维度来获取特定 EC2 实例的统计数据。

对于由特定 AWS 服务(如 Amazon EC2)生成的指标,CloudWatch 可以聚合多个维度中的数据。例如,如果在 AWS/EC2 命名空间中搜索指标但不指定任何维度,CloudWatch 将汇总指定指标的所有数据以创建您请求的统计数据。CloudWatch 不会为您的自定义指标跨多个维度进行汇总。

维度组合

CloudWatch 将维度的每种唯一组合视为一个单独的指标,即使指标具有相同的指标名称也是如此。您只能使用已发布的特定维度组合检索统计数据。当您检索统计数据时,为命名空间、指标名称和维度参数指定创建指标时使用的相同值。您还可为 CloudWatch 指定要用于聚合的开始和结束时间。

例如,假设您在具有以下属性的 DataCenterMetric 命名空间中发布了 4 个名为 ServerStats 的不同指标:

Dimensions: Server=Prod, Domain=Frankfurt, Unit: Count, Timestamp: 2016-10-31T12:30:00Z, Value: 105 Dimensions: Server=Beta, Domain=Frankfurt, Unit: Count, Timestamp: 2016-10-31T12:31:00Z, Value: 115 Dimensions: Server=Prod, Domain=Rio, Unit: Count, Timestamp: 2016-10-31T12:32:00Z, Value: 95 Dimensions: Server=Beta, Domain=Rio, Unit: Count, Timestamp: 2016-10-31T12:33:00Z, Value: 97

如果您仅发布这 4 个指标,则可检索这些维度组合的统计数据:

  • Server=Prod,Domain=Frankfurt

  • Server=Prod,Domain=Rio

  • Server=Beta,Domain=Frankfurt

  • Server=Beta,Domain=Rio

如果您未指定任何维度,则无法检索以下维度的统计数据:

  • Server=Prod

  • Server=Beta

  • Domain=Frankfurt

  • Domain=Rio

统计数据

统计数据 是指定时间段内的指标数据聚合。CloudWatch 所提供的统计数据基于您的自定义数据或者其他 AWS 服务提供给 CloudWatch 的指标数据点。聚合通过使用命名空间、指标名称、维度以及数据点度量单位在您指定的时间段内完成。下表介绍了可用的统计信息。

统计数据 描述
Minimum

指定时间段内的最低观察值。可以使用此值来决定应用程序的活动量是否较低。

Maximum

指定时间段内的最高观察值。可以使用此值来决定应用程序的活动量是否较高。

Sum

为匹配指标所提交的所有的值添加在一起。此统计信息的作用是决定指标的总量。

Average

指定时间段内 Sum / SampleCount 的值。通过将此统计信息与 MinimumMaximum 进行比较,可以决定指标的完整范围以及平均使用率与 MinimumMaximum 的接近程度。这样的比较可以帮助了解何时应该根据需要增加或减少资源。

SampleCount

数据点计数 (数量) 用于统计信息的计算。

pNN.NN

指定的百分位数的值。您可以指定任何百分位数,最多使用两位小数 (例如 p95.45)。百分位数统计数据不可用于包含任何负值的指标。有关更多信息,请参阅百分位数

您可添加预先计算的统计数据。作为对数据点值的替代,可以指定 SampleCountMinimumMaximumSum 值(CloudWatch 会为您计算平均值)。以这种方式添加的值会被与匹配指标关联的任何其他值聚合。

单位

所有统计数据都有度量单位。示例单位包括 BytesSecondsCountPercent。有关 CloudWatch 支持的单位的完整列表,请参阅 Amazon CloudWatch API Reference 中的 MetricDatum 数据类型

您可在创建自定义指标时指定单位。如果未指定单位,CloudWatch 将使用 None 作为单位。单位帮助为数据提供概念意义。尽管在内部单位对于 CloudWatch 无重大意义,其他应用程序还是可以根据单位得到语义信息。

指定度量单位的指标数据点是单独聚合的。当获得统计信息而不指定单位时,CloudWatch 会将相同单位的所有数据点聚合在一起。如果有两个完全相同的指标包含不同的单位,则每个单位会各返回一个数据流。

时间段

时间段是与特定 Amazon CloudWatch 统计信息关联的时间的长度。每项统计信息代表在指定时间段内对收集的指标数据的聚合。时间段以秒为单位定义,时间段的有效值为 1、5、10、30 或 60 的任意倍数。例如,要指定六分钟的时间段,时间段的值应为 360。通过改变时间段的长度可以调整数据聚合的方式。时间段可短至一秒,也可长至一天 (86400 秒)。默认值为 60 秒。

只有您使用 1 秒的存储精度定义的自定义指标支持亚分钟级时间段。虽然设置为低于 60 的时间段的选项在控制台中始终可用,但您应选择与指标存储方式相符的时间段。有关支持亚分钟级时间段的指标的更多信息,请参阅高精度指标

当您检索统计数据时,可指定时间段、开始时间和结束时间。这些参数决定了与统计数据关联的时间的总长度。开始时间和结束时间的默认值将让您获得上一小时的统计数据。您指定的开始时间和结束时间值确定 CloudWatch 返回的时间段的数量。例如,使用时间段、开始时间和结束时间的默认值检索统计数据将返回上一小时内每分钟的聚合统计数据集。如果您想要以 10 分钟为一块来聚合统计信息,请指定时间段 600。对于一个完整小时内聚合的统计数据,请指定时间段 3600。

当对某个时段的统计数据进行聚合时,将为聚合的数据标记上对应的时段起始时间。例如,从晚上 7:00 到晚上 8:00 聚合的数据将会加上晚上 7:00 的时间戳。此外,在晚上 7:00 和晚上 8:00 之间聚合的数据将在晚上 7:00 开始可见,然后该聚合数据的值可能会随着 CloudWatch 收集该时间段内的更多样本而发生更改。

时间段对 CloudWatch 警报也很重要。当您创建警报以监控特定指标时,您是在要求 CloudWatch 将该指标与指定的阈值进行比较。您对 CloudWatch 如何进行此比较拥有广泛的控制力。您不仅能够指定进行比较的时间段,还能够指定用于得出结论的评估期间的数目。例如,如果您指定三个评估期间,则 CloudWatch 将比较三个数据点的时段。CloudWatch 仅告知您最旧的数据点是否出现泄露以及其他数据点是否出现泄露或丢失。对于持续发出的指标,CloudWatch 不会通知您,直至发现三个故障。

聚合

Amazon CloudWatch 将根据您在检索统计数据时指定的时间段长度聚合统计数据。可以根据需要发布包含相同或类似时间戳的任意数量的数据点。CloudWatch 将按时间段长度对其进行聚合。仅在使用详细监控时才能聚合统计数据。此外,Amazon CloudWatch 不跨各个区域聚合数据。

可以为共享相同时间戳、相同命名空间和维度的指标发布数据点。CloudWatch 返回这些数据点的汇总统计数据。还可以为包含任意时间戳的相同或不同指标发布多个数据点。

对于大型数据集,您可插入称为统计数据集的预先汇总数据集。通过统计数据集,可以让 CloudWatch 为一定数量的数据点提供 Min、Max、Sum 和 SampleCount。当您需要在一分钟内多次收集数据时,通常可以使用它。例如,假设您拥有一个关于网页请求延迟的指标。对命中的每一个网页都发布数据毫无意义。建议您收集所有到达此网页的命中的延迟,每分钟对其汇总一次,然后将统计数据集发送到 CloudWatch。

Amazon CloudWatch 不会区分指标的来源。如果从不同的来源发布包含相同命名空间和维度的一个指标,则 CloudWatch 会将其视为一个单独的指标。这对分布式扩展型系统中的服务指标有其作用。例如,Web 服务器应用程序中的所有主机可以发布完全相同的指标,这些指标代表您正在处理的请求的延迟。CloudWatch 会将这些指标视为一个单独的指标,以便允许您获取应用程序中所有请求的最小值、最大值、平均值及总和的统计数据。

百分位数

百分位数指示某个值在数据集中的相对位置。例如,第 95 个百分位数表示 95% 的数据低于此值,5% 的数据高于此值。百分位数可帮助您更好地了解指标数据的分布情况。您可以将百分位数用于以下服务:

  • Amazon EC2

  • Amazon RDS

  • Kinesis

  • 应用程序负载均衡器

  • Elastic Load Balancing

  • API 网关

百分位数通常用于隔离异常值。在典型分布中,95% 的数据在平均值的两个标准偏差范围内,99.7% 的数据在平均值的三个标准偏差范围内。落在三个标准偏差之外的任何数据通常被认为是异常值,因为它与平均值相差很多。例如,假设您正在监控 EC2 实例的 CPU 利用率,以确保客户有良好的体验。如果您监控平均值,这可以隐藏异常值。如果您监控最大值,单个异常值可能会使结果出现偏差。使用百分位数,您可以监控 CPU 利用率的第 95 个百分位数,以检查负载异常重的实例。

您可以使用百分位数监控您的系统和应用程序,就像使用其他 CloudWatch 统计数据(平均值、最小值、最大值和总和)一样。例如,在创建警报时,可以使用百分位数作为统计函数。您可以指定最多两个小数位的百分位数 (例如 p95.45)。

百分位数统计数据可用于自定义指标以及 AWS 服务中的指标,您为自定义指标发布原始、未经汇总的数据点即可。当任何指标值为负数时,百分位数统计数据不可用于指标。

CloudWatch 需要原始数据点来计算百分位数。如果您改用统计数据集发布数据,只有在满足以下条件之一,才能检索此数据的百分位数统计数据:

  • 统计数据集的 SampleCount 为 1。

  • 统计数据集的最小值和最大值相等。

警报

您可使用警报 代表您自动发起操作。警报在指定的时间段内监控单个指标,并根据指标值相对于阈值的变化情况执行一项或多项指定操作。操作是向 Amazon SNS 主题或 Auto Scaling 策略发送的通知。您还可以将警报添加到控制面板。

警报仅在出现持续状态变化时才会调用操作。CloudWatch 警报将不会仅因为其处于特定状态而调用操作。该状态必须已改变并在指定的若干个时间段内保持不变。

创建警报时,应选择与待监控指标的频率相等或更高的时间段。例如,对 Amazon EC2 进行的基本监控每隔 5 分钟提供一次实例指标。为基本监控指标设置警报时,选择的时间段至少应为 300 秒(5 分钟)。对 Amazon EC2 的详细监控每隔 1 分钟提供一次实例指标。当为详细监控指标设置警报时,选择的时间段至少为 60 秒 (1 分钟)。

如果对高精度指标设置警报,您可以指定 10 秒或 30 秒时间段的高精度警报,也可以设置 60 秒的任意倍数时间段的定期警报。高精度警报的费用较高。有关高精度指标的更多信息,请参阅发布自定义指标

有关更多信息,请参阅 创建 Amazon CloudWatch 警报从图表上的指标创建警报