AWS Cloudwatch指标的累计总和

时间:2018-04-07 21:37:30

标签: amazon-web-services amazon-cloudwatch

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

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

目前,我可以绘制已启动图像下载的总和,但仅限于句点,如下所示。理想情况下,我想绘制这个情节的积分:

AWS Cloudwatch Metrics

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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

指标的最长期限为一天,因此不适合您希望延续一天的累积计数器

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