为什么 Cloudwatch 中 5 分钟指标的最大、最小、平均统计数据有不同的结果?

Joh*_*Doe 3 amazon-ec2 amazon-web-services amazon-cloudwatch

我已经启动了一个 EC2 实例(具有标准监控)。

据我了解,EC2 服务将每 5 分钟向 Cloudwatch 发布 1 个 CPU 利用率数据点。

因此我的问题是,为什么不同统计数据(最小值、最大值、平均值……)的 5 分钟可视化图表不同?

由于每 5 分钟只有 1 个数据点,因此单个数据点的最小值、最大值或平均值应该相同,对吗?

例子: 在此输入图像描述

只需将“平均”统计数据更改为“最大值”,图表就会发生变化(我不明白为什么)。

在此输入图像描述

谢谢

jel*_*csc 8

只是为了补充 @jccampanero 的答案,我想用更多细节来解释它。

据我了解,EC2 服务将每 5 分钟向 CloudWatch 发布 1 个 CPU 利用率数据点。

是的,您的理解是正确的,但是数据点有两种类型。一类称为“原始数据”,另一类称为“统计集”。两种类型都使用相同的PutMetricData API 将指标发布到 CloudWatch,但它们使用不同的选项。

由于每 5 分钟只有 1 个数据点,因此单个数据点的最小值、最大值或平均值应该相同,对吗?

不完全的。仅当所有数据点均为“原始数据”类型时,这才是正确的。基本上只是将其视为一个数字。如果您有统计数据集,则单个数据点的最小值、最大值和平均值可能不同,这正是此处发生的情况。

如果您选择SampleCount统计量,您可以看到这里的一个数据点是 5 个样本的聚合。实际上,只是为了给您一个具体的例子,让我们以@jccampanero 的答案为例。

这段时间内CPU利用率平均为40%,最高为90%,最低为20%。我希望你能明白。

转换为代码(例如AWS CLI),它就像

aws cloudwatch put-metric-data \
    --metric-name CPUUtilization \
    --namespace AWS/EC2 \
    --unit Percent \
    --statistic-values Sum=200,Minimum=20,Maximum=90,SampleCount=5 \
    --dimensions InstanceId=i-123456789
Run Code Online (Sandbox Code Playgroud)

如果 EC2 使用 AWS CLI 将指标推送到 CloudWatch,就是这样。我想您现在已经明白了,聚合数据以节省 CloudWatch 账单的费用是很常见的。