AWS Cloudwatch 指标的累计总和
Cumulative sum of AWS Cloudwatch Metric
每次我开始图像下载时,AWS Cloudwatch 都会收到 1 的计数。我正在下载 1,000 多张图像(在 EC2 实例集群上)并希望跟踪总进度。
我找不到任何关于如何绘制指标的累积和的文档。 AWS Cloudwatch 数学表达式看起来很有前途,但它们没有集成函数。
目前,我可以绘制开始图像下载的总和,但仅限于一段时间,如下所示。理想情况下,我想绘制此图的积分:
你是对的。所有 Amazon CloudWatch 指标都是针对 定义的时间段 。
指标的最大周期是一天,所以这不适合table累积计数器您希望继续超过一天。
您需要找到另一种存储计数的方法,例如 Amazon DynamoDB table。通过 UpdateItem 使用原子计数器来增加计数。
您可以使用 SUM()
函数在仅包含数字一 (1) 的原始范围内运行,从而获得当前范围内的累计和。请记住,您最终要寻找的是单个数字,因此它不是一个图形,但您需要将单个值的总和转回时间序列。
- 将
m1
定义为您的指标。这是您要使用的指标 SUM()
。
- 将表达式
e1
定义为 m1/m1
。这导致每个值都等于 1 的时间序列。这就是允许您将该 SUM 转换回时间序列的原因。
- 将表达式
e2
定义为 SUM(m1) / e1
。这实际上是原始时间序列中每个数据点的 m1
的累积总和除以 1。它将是图表上的一条水平线,该水平线上的每个点都是指标 m1
的累积和。这是必需的,因为 Cloudwatch 只能在图表上绘制时间序列,而不是单个值。
- 使
m1
和 e1
不可见。你需要它们,但你不需要看到它们。
- 最后,将图表类型从
Line
更改为 Number
,因为无论如何您只需要累计总和。
不能直接使用 SUM()
的原因是因为它是单个值。通过除以包含全 1 的时间序列,整个图就是 SUM()
的结果。然后,将图表更改为数字有效地隐藏了所有数学运算并仅显示“最终结果”。
你也可以用很长的周期
将您的统计数据更改为 SUM
,并将您的指标周期设置为 7 days
。您将获得一个 1 点的时间序列,其中包含所有下载的累计总和。
如果您为每次下载赋予唯一的维度值,则可以将您的查询分开。
看起来 RUNNING_SUM() 已添加,可以满足您的需要:
Graph with RUNNING_SUM
您可以在“添加数学”->“所有函数”下找到 RUNNING_SUM()
每次我开始图像下载时,AWS Cloudwatch 都会收到 1 的计数。我正在下载 1,000 多张图像(在 EC2 实例集群上)并希望跟踪总进度。
我找不到任何关于如何绘制指标的累积和的文档。 AWS Cloudwatch 数学表达式看起来很有前途,但它们没有集成函数。
目前,我可以绘制开始图像下载的总和,但仅限于一段时间,如下所示。理想情况下,我想绘制此图的积分:
你是对的。所有 Amazon CloudWatch 指标都是针对 定义的时间段 。
指标的最大周期是一天,所以这不适合table累积计数器您希望继续超过一天。
您需要找到另一种存储计数的方法,例如 Amazon DynamoDB table。通过 UpdateItem 使用原子计数器来增加计数。
您可以使用 SUM()
函数在仅包含数字一 (1) 的原始范围内运行,从而获得当前范围内的累计和。请记住,您最终要寻找的是单个数字,因此它不是一个图形,但您需要将单个值的总和转回时间序列。
- 将
m1
定义为您的指标。这是您要使用的指标SUM()
。 - 将表达式
e1
定义为m1/m1
。这导致每个值都等于 1 的时间序列。这就是允许您将该 SUM 转换回时间序列的原因。 - 将表达式
e2
定义为SUM(m1) / e1
。这实际上是原始时间序列中每个数据点的m1
的累积总和除以 1。它将是图表上的一条水平线,该水平线上的每个点都是指标m1
的累积和。这是必需的,因为 Cloudwatch 只能在图表上绘制时间序列,而不是单个值。 - 使
m1
和e1
不可见。你需要它们,但你不需要看到它们。 - 最后,将图表类型从
Line
更改为Number
,因为无论如何您只需要累计总和。
不能直接使用 SUM()
的原因是因为它是单个值。通过除以包含全 1 的时间序列,整个图就是 SUM()
的结果。然后,将图表更改为数字有效地隐藏了所有数学运算并仅显示“最终结果”。
你也可以用很长的周期
将您的统计数据更改为 SUM
,并将您的指标周期设置为 7 days
。您将获得一个 1 点的时间序列,其中包含所有下载的累计总和。
如果您为每次下载赋予唯一的维度值,则可以将您的查询分开。
看起来 RUNNING_SUM() 已添加,可以满足您的需要:
Graph with RUNNING_SUM
您可以在“添加数学”->“所有函数”下找到 RUNNING_SUM()