在 Amazon Cloudwatch Insights 中,如何获取统计数据的统计数据?

The*_*tor 5 amazon-cloudwatch aws-cloudwatch-log-insights

我正在使用 AWS Cloudwatch Insights 并运行如下查询:

fields @message, @timestamp
| filter strcontains(@message, "Something of interest happened")
| stats count() as interestCount by bin(10m) as tenMinuteTime
| stats max(interestCount) by datefloor(tenMinuteTime, 1d)
Run Code Online (Sandbox Code Playgroud)

但是,在最后一行,我收到以下错误:

mismatched input 'stats' expecting {K_PARSE, K_SEARCH, K_FIELDS, K_DISPLAY, K_FILTER, K_SORT, K_ORDER, K_HEAD, K_LIMIT, K_TAIL}
Run Code Online (Sandbox Code Playgroud)

这似乎意味着我无法在 Insights 中进行多层统计查询,因此无法获取统计数据的统计数据。有没有解决的办法?

Ozo*_*one 7

您当前无法使用多个 stat 命令,据我所知,目前没有直接的方法解决这个问题。但是,您可以加厚单个 stat 命令并用逗号分隔,如下所示:

fields @message, @timestamp
| filter strcontains(@message, "Something of interest happened")
| stats count() as @interestCount, 
max(interestCount) as @maxInterest, 
interestCount by bin(10m) as @tenMinuteTime
Run Code Online (Sandbox Code Playgroud)

您定义字段并在之后使用函数stats,然后处理这些结果字段。

  • 请注意:变量名称中的“@”不是必需的。aws 自动提供的变量(例如 @timestamp 和 @message 以及其他一些变量)均以 @ 为前缀 - 但对于您的内部变量则不必如此。只是给所有在这里寻找的人一个注释! (5认同)