google-cloud-platform - 在 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 Logs Explorer 中过滤非空字符串:
severity="DEFAULT" AND
jsonPayload.response.Values !~ ''
另一种方法是:
severity="DEFAULT" AND
jsonPayload.response.Values:*
NOT jsonPayload.response.Values = ''
推荐阅读
- python - IndexError:列表索引超出范围:sys.argv[1] 超出范围
- llvm - LLVM pass 不执行单个静态分配
- python - 如何在 Flask 应用程序中正确更新博客文章上的标签?
- ansi-escape - 是否有一个 ansi 转义序列来为空白区域设置颜色?
- python - 关于重复行的 Panda If 语句
- python-3.x - 列表中的Python排列字符串
- node.js - Heroku 部署 graphql 空白页
- angular - 如果使用引导日期时间选择器在输入字段中没有日期,如何将日历打开到今天的日期
- python - 如何处理输入中的不良尾随数据?
- rust - Rust 无法推断 Box 的生命周期
> 在某些情况下