首页 > 解决方案 > 在 Google Cloud Logs Explorer 中查询日志以过滤非空字符串

问题描述

我正在尝试查询满足简单条件的所有日志:

jsonPayload一些DEFAULT日志条目的结构如下:

response: {
    Values: [
        [   ] 
    ]
}

其中每个项目Values都是一个数组。在大多数情况下,数组中Values有一个项目""(空)。我想编写一个查询,可以过滤所有值与空字符串(实际上是数组)不同的日志条目。

这是我尝试运行的查询:

severity="DEFAULT" AND
jsonPayload.response.Values != ''

这没有返回任何结果。有成千上万的条目,其中大部分是空的。这可以做到吗?如果是这样,在这种情况下我错过了什么?

编辑

我正在检查里面的第一个值Values是否不是空字符串。在我正在寻找的条目中,第一项的值将是一个数组。

编辑 2

按照建议的参考,我尝试寻找相反的内容:

severity="DEFAULT" AND
jsonPayload.response.Values = ''

这向我显示了所有带有空值数组的结果,如预期的那样。令我困惑的是为什么它不起作用。日志由作为事件处理的 webhook 的云功能生成。表示来自事件源的请求的jsonPayload主体。

标签: google-cloud-platformgoogle-cloud-logging

解决方案


如官方文档中所示,在 Google Cloud Logs Explorer 中过滤非空字符串:

severity="DEFAULT" AND
jsonPayload.response.Values !~ ''

另一种方法是:

severity="DEFAULT" AND
jsonPayload.response.Values:*
NOT jsonPayload.response.Values = ''

推荐阅读