AWS Cloudwatch 指标的累积总和

awa*_*lll 18 amazon-web-services amazon-cloudwatch

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

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

目前,我可以绘制已启动图像下载的总和,但仅限于时间段,如下所示。理想情况下,我想绘制该图的积分:

AWS Cloudwatch 指标

Use*_*r51 23

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

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

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


小智 17

看起来RUNNING_SUM()已经添加了满足您需要的功能:

带有 RUNNING_SUM 的图表

RUNNING_SUM()您可以在“添加数学”->“所有函数”下找到


Joh*_*ein 5

你是对的。所有 Amazon CloudWatch 指标均针对指定时间段

指标的最大周期为1 天,因此这不适合您希望持续超过一天的累积计数器。

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