【发布时间】:2021-04-21 04:05:12
【问题描述】:
我正在尝试查询所有满足简单条件的日志:
一些DEFAULT 日志条目的jsonPayload 具有以下结构:
response: {
Values: [
[ ]
]
}
Values 中的每个项目都是一个数组。在大多数情况下,Values 在数组中有一个项目""(空)。我想编写一个查询,可以过滤所有值不同于空字符串(实际上是数组)的日志条目。
这是我尝试运行的查询:
severity="DEFAULT" AND
jsonPayload.response.Values != ''
这没有返回任何结果。有成千上万的条目,其中大部分是空的。这可以做到吗?如果是这样,在这种情况下我缺少什么?
编辑
我正在检查Values 中的第一个值是否不是空字符串。在我要查找的条目中,第一项的值将是一个数组。
编辑 2
按照建议的参考,我尝试寻找相反的:
severity="DEFAULT" AND
jsonPayload.response.Values = ''
这按预期向我显示了空值数组的所有结果。令我困惑的是为什么它不起作用。日志由作为事件处理的 webhook 的云功能生成。 jsonPayload 代表来自事件源的请求正文。
【问题讨论】:
-
也许你需要搜索missing fields?此外,我在文档中找不到您正在使用的语法的任何内容。我只发现 array type 上的比较搜索任何匹配的数组元素。
-
-jsonPayload.response.Values=''有没有机会工作? -
我能够下载日志,然后在 JSON 日志文件上使用 JS 来找到所需的结果。我试过用单引号,但也没有用
-
现在行不行?
-
请查看有关Advanced logs query syntax 的de 文档的这一部分,您可以在其中使用带有先例["NOT"] 的查询,也可以在找到有效的create an exclusion filter 后使用查询
标签: google-cloud-platform google-cloud-logging