如何在 AWS Cloud Watch Logs Insights 中 运行 分组

How to run a group by in AWS Cloud Watch Logs Insights

我有如下 CWL 条目。显示 SQL 中的条目 为清楚起见键入

Name City
1     Chicago
2     Wuhan
3     Chicago
4     Wuhan
5     Los Angeles

现在我想要低于输出

City         Count
Chicago        2
Wuhan          2
Los Angeles    1

有什么方法可以让我在 CWL Insights 中 运行 GROUP BY

伪查询

Select Count(*), City From {TableName} GROUP BY City

您可以将聚合函数 countby 语句一起使用:https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html

这是您案例的完整示例,假设日志中包含的条目与示例中的条目完全相同(城市名称的正则表达式非常简单,您可能需要对其进行优化)。

fields @timestamp, @message
| parse @message /^(?<number>\d+)\s+(?<city>[a-zA-Z\s]+)$/
| filter ispresent(city)
| stats count(*) by city

结果:

---------------------------
|     city     | count(*) |
|--------------|----------|
| Chicago      | 2        |
| Wuhan        | 2        |
| Los Angeles  | 1        |
---------------------------