我们使用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日志,或者知道这是否支持?
在新的工作中,我们将使用不同的分隔符,但我们不会回去并在任何地方进行更改。
答案 0 :(得分:0)
在撰写本文时,这是不可能的。 AWS可能会在某个时候解决该问题,但目前唯一的解决方法是使用非JSON语法并搜索确切的字符串。以下过滤器:
"\"RouteHandler:GetCookies\": {\"value\": 1}"
将匹配此日志事件:
{"Counts": {"RouteHandler:GetCookies": {"value": 1}}}
显然缺点是空白和位置很重要。