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

如何使用CloudWatch Metric Filter筛选存在指定JSON键的日志?

CloudWatch Logs JSON字段存在性筛选解决方案

直接使用以下过滤表达式即可命中所有包含顶层response键的日志,符合你的预期返回第二条示例日志:

{ EXISTS $.response }

之前写法不生效的原因

  • EXISTS是CloudWatch JSON过滤语法的前缀关键字,必须放在要判断的字段路径之前,你写的{ $.response EXISTS }属于语法顺序错误,因此返回结果和预期完全相反。
  • 其余错误写法的问题:
    • { $.response = * }这类通配符匹配仅适用于字符串字段值的模糊匹配,无法用来判断字段本身是否存在
    • { $.response != NULL }这类NULL判断仅在字段存在但值为NULL时生效,如果字段本身不存在,该判断不会命中

常用扩展语法

  • 筛选嵌套字段存在的日志:例如要命中response下存在response_code键的日志,写法为{ EXISTS $.response.response_code }
  • 反向筛选(不存在指定字段):要返回不包含response键的日志,写法为{ NOT EXISTS $.response }

相关官方语法中文说明

摘自CloudWatch日志过滤器和模式语法官方文档:
JSON模式下的字段存在性判断规则:

  1. 使用EXISTS 字段路径语法判断指定JSON路径对应的字段是否存在于日志中
  2. 可以搭配NOT关键字实现反向判断,语法为NOT EXISTS 字段路径
  3. 仅当字段实际存在于JSON结构中时EXISTS判断返回真,字段值为NULL、空字符串、0等情况都属于字段存在,都会命中EXISTS规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:15:04