【问题标题】:Sampling rate for data returned with boto3 get_metric_statistics()使用 boto3 get_metric_statistics() 返回的数据的采样率
【发布时间】:2018-02-03 13:31:54
【问题描述】:

文档在这里...

http://boto3.readthedocs.io/en/latest/reference/services/cloudwatch.html#CloudWatch.Client.get_metric_statistics

这是我们的电话

response = cloudwatch.get_metric_statistics(
    Namespace='AWS/EC2', 
    MetricName='CPUUtilization', #reported every 5 minutes

    Dimensions=[
        {
            'Name': 'AutoScalingGroupName', 
            'Value': 'Celery-AutoScalingGroup' 
        },
    ],
    StartTime=now - datetime.timedelta(minutes=12),
    EndTime=now,
    Period=60, #I can't figure out what exactly changing this is doing
    Statistics=['Average','SampleCount','Sum','Minimum','Maximum'],
)

这是我们的回应

>>> response['Datapoints']
[ {u'SampleCount': 5.0, u'Timestamp': datetime.datetime(2017, 8, 25, 12, 46, tzinfo=tzutc()), u'Average': 0.05,  u'Maximum': 0.17, u'Minimum': 0.0, u'Sum': 0.25, u'Unit': 'Percent'},
  {u'SampleCount': 5.0, u'Timestamp': datetime.datetime(2017, 8, 25, 12, 51, tzinfo=tzutc()), u'Average': 0.034, u'Maximum': 0.08, u'Minimum': 0.0, u'Sum': 0.17, u'Unit': 'Percent'}
]

这是我的问题

查看返回列表中的第一个字典。我猜,SampleCount 为 5 是有道理的,因为我们的 Period 是 60(秒),而 CloudWatch 每 5 分钟提供一次“CPUUtilization”指标。

但如果我更改 Period,比如 3 分钟 (180),我仍然会得到 5 的 SampleCount(我希望是 1 或 2)。

这是一个问题,因为我想要平均值,但我认为它平均 5 个数据点,其中只有 2 个有效(开始和结束,对应于最小值和最大值,即 CloudWatch 指标在某个时间t 以及该指标在时间 t+5 分钟的下一次报告)。

它使用 3 个中间 0 值数据点对此进行平均,因此平均值为 (Minimum+Maximum+0+0+0)/5

我可以得到最小值,最大值将它们相加并除以 2 以获得更好的读数 - 但我希望有人能准确解释“期间”参数的作用。 就像我说的,将其更改为 360 并不会更改 SampleCount,但是当我将其更改为 600 时,我的 SampleCount 突然对于一个数据点为 10.0(这确实有意义)。

【问题讨论】:

    标签: amazon-web-services boto boto3 amazon-cloudwatch amazon-cloudwatch-metrics


    【解决方案1】:

    可以通过两种不同的方式将数据发布到 CloudWatch:

    1. 您可以一一发布您的观察结果并让 CloudWatch 进行聚合。
    2. 您可以自己汇总数据并发布统计数据集(SampleCount、Sum、Minimum、Maximum)。

    如果使用方法 1 发布数据,您将获得预期的行为。但是如果使用方法二发布数据,就会受到发布数据粒度的限制。

    如果 ec2 将数据聚合 5 分钟,然后发布统计集,则请求 3 分钟级别的数据是没有意义的。但是,如果您请求的数据周期是发布数据周期的倍数(例如 10 分钟),则可以计算统计数据,CloudWatch 会这样做。

    【讨论】:

      猜你喜欢
      • 2021-09-21
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多