Amazon web services AWS Cloudwatch度量的累积和

Amazon web services AWS Cloudwatch度量的累积和,amazon-web-services,amazon-cloudwatch,Amazon Web Services,Amazon Cloudwatch,每次我开始图像下载时,AWS Cloudwatch都会收到1的计数。我正在下载1000张图片(在EC2实例集群上),并希望跟踪总体进度 我找不到任何关于如何绘制度量的累积和的文档。AWS Cloudwatch数学表达式看起来很有前途,但它们没有集成函数 目前,我可以绘制开始图像下载的总和,但只能绘制周期,如下所示。理想情况下,我想画出这个图的积分: 你是对的。所有Amazon CloudWatch指标都适用于定义的时间段 度量的最大周期为一天,因此这不适用于希望持续超过一天的累积计数器 您需要找

每次我开始图像下载时,AWS Cloudwatch都会收到1的计数。我正在下载1000张图片(在EC2实例集群上),并希望跟踪总体进度

我找不到任何关于如何绘制度量的累积和的文档。AWS Cloudwatch数学表达式看起来很有前途,但它们没有集成函数

目前,我可以绘制开始图像下载的总和,但只能绘制周期,如下所示。理想情况下,我想画出这个图的积分:


你是对的。所有Amazon CloudWatch指标都适用于定义的时间段

度量的最大周期为一天,因此这不适用于希望持续超过一天的累积计数器


您需要找到另一种存储计数的方法,例如Amazon DynamoDB表。使用原子计数器via增加计数。

您可以使用在仅包含数字1的原始范围内操作的
sum()
函数,获得当前范围内的累积和。请记住,您最终寻找的是一个单一的数字,因此它不是一个很好的图形,但您需要将单个值总和转换回时间序列

  • m1
    定义为度量标准。这是您要在上使用的度量
  • 将表达式
    e1
    定义为
    m1/m1
    。这将产生一个时间序列,每个值都等于1。这将允许您将该总和转换回时间序列
  • 将表达式
    e2
    定义为
    SUM(m1)/e1
    。这实际上是原始时间序列中每个数据点的
    m1
    的累积和除以1。它将是图表上的一条水平线,该水平线上的每一点都是公制
    m1
    的累积和。这是必需的,因为Cloudwatch只能在图表上绘制时间序列,而不是单个值
  • 使
    m1
    e1
    不可见。你需要它们,但你不需要看到它们
  • 最后,将图表类型从
    Line
    更改为
    Number
    ,因为您只需要累计和

不能直接使用
SUM()
的原因是它是一个单一的值。通过除以包含所有1的时间序列,整个图形就是
SUM()
的结果。然后,将图表更改为一个数字实际上隐藏了所有的数学运算,并只显示“最终结果”。

最后这样做了。然而,我需要下载100000000+件东西,因此这可能会因为高写入容量而变得昂贵(所有这些都只使用一个计数器)。很高兴听到关于避免这种扩展问题的建议。Amazon DynamoDB具有突发功能,因此您不需要完全正确地获得容量。另一种方法是向SQS发送消息并单独处理消息,这意味着您只需要很少的DynamoDB写入容量。(例如每小时或每分钟触发一个Lambda函数,阅读消息并增加计数。)感谢您的建议。起初我没有使用SQS来实现这一点,因为它不支持高分辨率监控,但我要再看一看这是一个很棒的技巧,感谢您分享对CloudWatch的深刻理解