You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CloudWatch Insights中解析JSON日志并按字段过滤

CloudWatch Insights 解析JSON格式@message字段的正确实现

你当前直接调用@message.level的写法无法生效,原因是@message字段默认被识别为纯文本字符串,不会自动解析内部的JSON结构,需要先通过内置的JSON解析命令完成字段拆分,具体操作如下:

  • 核心解析逻辑:对于完全符合标准JSON格式的@message内容,直接在查询中加入parse @message as json语句,即可自动将JSON内所有顶层键解析为可独立查询、过滤的字段,无需逐个手动映射。
  • 适配你筛选error/fatal级别日志需求的最终查询语句:
fields @timestamp, @message, level, logger, timestamp
| parse @message as json
| filter level like /(?i)error|fatal/
| sort @timestamp desc
| limit 20

补充说明

  • 解析完成后,所有JSON顶层字段可以直接通过字段名调用,比如示例中的level、logger、timestamp都可以直接用于过滤、统计、排序操作
  • 如果日志JSON存在嵌套结构,比如结构为{"detail": {"level": "error"}},解析后可通过点号访问嵌套字段,写法为detail.level
  • 如果你只需要提取个别字段,也可以使用json_extract_scalar函数单独提取,示例写法为fields json_extract_scalar(@message, '$.level') as log_level,但对于全量标准JSON日志场景,parse @message as json的写法更简洁,查询性能也更好
  • 你原写法中使用的(?i)正则修饰符为不区分大小写匹配,可以同时覆盖ERROR、Error、error、FATAL、Fatal、fatal等不同大小写的日志级别值,适配绝大多数业务日志的输出习惯

内容的提问来源于stack exchange,提问作者user7858768

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:36:08