首页 > 解决方案 > Cloudwatch 洞察查询按字段分组

问题描述

尝试编写云观察洞察查询以连接相同时间戳的错误消息,以在结果中显示为一行而不是多行。

到目前为止,我已经尝试了以下查询。

fields @timestamp,concat(@message)
| filter @message like /(?i)(Exception|error|fail|)/
| limit 20

这显示结果如下。

2019-09-12T12:17:09.803+10:00 12:17:09,720 |-ERROR in A
2019-09-12T12:17:09.803+10:00 12:17:09,720 |-ERROR in B
2019-09-12T12:17:09.803+10:00 12:17:09,720 |-ERROR in C

我期待以下结果。

2019-09-12T12:17:09.803+10:00 12:17:09,720 |- A 中的错误 -B 中的错误 -C 中的错误

标签: amazon-cloudwatch

解决方案


concat运算符不是聚合函数,因此不会执行您要查找的操作。

相反,它用于在单行中连接多个值,例如

fields @timestamp, concat("Got message ", @message, " from stream ", @logStream)

会给你

| 2019-09-12T12:17:09.803+10:00 12:17:09,720 | Got message bla from stream some_log_stream | 

据我所知,没有办法将多行中的字符串聚合到一行中。


推荐阅读