搜索JSON属性名称中带有特殊字符的AWS CloudWatch日志

问题描述 投票:12回答:1

我们使用AWS CloudWatch Logs调试在AWS上运行的服务,并且日志中的许多属性名称都使用冒号作为分隔符,但我们无法弄清楚如何使用这些属性名称进行搜索。

这里是一个日志示例:

{
  "Counts": {
    "RouteHandler:GetCookies": {
      "value": 1
    }
  }
}

使用控制台,我已经尝试过这样的查询:

{ $.Counts.RouteHandler:GetCookies.value = 1 }

当然,特殊字符通常在查询语言中有特定用途,否则,我尝试以某种方式对其进行转义。

{ $.Counts.RouteHandler\:GetCookies.value = 1 }
// JavaScript inspired
{ $.Counts["RouteHandler:GetCookies"].value = 1 }
// Special character removed
{ $.Counts.RouteHandlerGetCookies.value = 1 }

我什么都想不起来,也许这是不可能的。 The docs似乎没有解决这种情况。

任何人都知道如何搜索属性包含特殊字符的JSON日志,或者明确知道是否支持此字符?

在新工作中,我们将使用不同的定界符,但我们不会回过头来在任何地方进行更改。

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs
1个回答
0
投票

在撰写本文时,这是不可能的。 AWS可能会在某个时候解决该问题,但是目前唯一的解决方法是使用非JSON语法并搜索确切的字符串。以下过滤器:

"\"RouteHandler:GetCookies\": {\"value\": 1}"

将匹配此日志事件:

{"Counts": {"RouteHandler:GetCookies": {"value": 1}}}

显然缺点是空白和位置很重要。

© www.soinside.com 2019 - 2024. All rights reserved.