如何在AWS CloudWatch Log Insights中关联日志行并合并查询结果?
CloudWatch Log Insights 实现日志关联查询
可以实现,你可以通过聚合统计结合字段提取的方式,把同一id下的name和city合并到一条结果里。具体查询语句如下:
filter @message like /id : / | parse 'id : [ * ]' as id | parse @message 'name : [ * ]' as name | parse @message 'city : [ * ]' as city | stats values(name) as name, values(city) as city by id
逻辑说明:
- 先过滤出所有包含
id :的日志行,确保覆盖带name或city的记录; - 统一解析出
id字段,不管单条日志里是带name还是city; - 分别解析
name和city字段,没有对应字段的行会自动留空; - 用
stats按id分组,通过values()函数提取每个id下的所有name和city值,最终同一id的结果会合并成一行。
如果你的日志格式严格匹配示例,也可以用更精准的解析写法:
filter @message like /name : / or @message like /city : / | parse 'id : [ * ], ' as id, remainder | parse remainder 'name : [ * ]' as name | parse remainder 'city : [ * ]' as city | stats values(name) as name, values(city) as city by id
执行后会得到以表格形式展示的结果,对应id=123的行中,name为"ABC"、city为"NYC",符合你想要的合并效果。
内容的提问来源于stack exchange,提问作者Divyesh Kalbhor
相关产品推荐
相关产品推荐

