CloudWatch 指标过滤器 - 按顺序查找术语的出现

CloudWatch metric filter - find appearance of terms in order

我正在使用 CloudWatch 指标过滤器。我有一个 JSON 日志,如下所示:

log.info("Null message generated for request: {}", request)

我正在尝试为这个特定的 JSON 日志创建一个指标过滤器。我最初尝试了以下模式:

"Null message generated for request"

但是,日志指标过滤器会尝试查看 JSON 日志中是否单独出现了这些术语。例如,我有一个日志语句:

{
    "timeMillis": 1609952498430,
    "thread": "main",
    "level": "INFO",
    "loggerName": "com.ewr.behvr.api.ProcessEventApi",
    "message": "The result generated markup: MarkupMessage{ \"messageTitle\" : \"Null event\", \"text\": \"Request resulted in a Null message\"}",
    "threadId": 1,
    "threadPriority": 5
}

不幸的是,过滤器也匹配此消息,这不应该是这种情况。

我尝试将 $. 符号与 JSON 日志事件一起使用,但我只能进行相等性检查,无法将字符串与之进行比较。

知道如何让这个指标过滤器起作用吗?并且没有误报?

谢谢!

经过实验并再次阅读文档,我得出了一个如下所示的过滤器表达式:

{($.loggerName="com.ewr.behvr.api.ProcessEventApi") && ($.message="Null message generated for request:*")}

我没有意识到我可以在值本身中添加通配符。一旦我使用了这个表达式,我就能够得到正确的日志集来匹配。