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:*")}
我没有意识到我可以在值本身中添加通配符。一旦我使用了这个表达式,我就能够得到正确的日志集来匹配。
我正在使用 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:*")}
我没有意识到我可以在值本身中添加通配符。一旦我使用了这个表达式,我就能够得到正确的日志集来匹配。