首页 > 解决方案 > 如何计算 AWS CloudWatch 指标中的唯一维度?

问题描述

假设我的应用程序发布具有单个维度的 AWS CloudWatch 指标。该维度的值可以是任何字符串。然后,在任何给定的时间间隔内,我都会有这样的事情:

(myDimension: "foo", value: 12)
(myDimension: "bar", value: 5)
(myDimension: "foo", value: 99)
(myDimension: "quux", value: 42)

现在我想根据由此派生的指标创建警报。我想忽略这些值,只计算每个维度的唯一出现次数。在这种情况下,值为 3 -- 1 表示“foo”(即使它出现了两次),1 表示“bar”,1 表示“quux”。

我怎样才能做到这一点?我查看了Metric Math文档,但没有找到任何可以帮助我的函数。似乎接近的一个是IF,但我不确定我是否可以用它来解决这个问题。

标签: amazon-cloudwatch

解决方案


您可以使用 CloudWatch Insights https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html

创建一个类似这样的查询:

parse @message '*(myDimension: "*"*' as f1, myDimensionKey, f2
| filter @message like '(myDimension:'
| stats count(*) by myDimensionKey

并将结果添加到仪表板。这将显示一个带有不同键和出现次数的表


推荐阅读