Google Cloud Console记录中的正则表达式

spe*_*ane 6 google-app-engine google-cloud-console google-cloud-logging

您如何使用正则表达式在新的Cloud Console中搜索Google App Engine日志?

这篇博客文章建议您只需要键入regex:my.*query即可搜索,但是在日志记录控制台中似乎不起作用。当我这样做时,它会自动更正为以下查询text:regex:my.*query

Vei*_*kko 19

如今,Google Cloud Operations Logging 支持正则表达式。此功能于 2020 年 9 月 17 日发布,请参阅https://cloud.google.com/blog/products/management-tools/cloud-logging-gets-regular-express-support。您的正则表达式以这种格式工作:

textPayload=~"my.*query"
Run Code Online (Sandbox Code Playgroud)

您可以查询正则表达式与operator匹配的内容=~和与operator不匹配的内容!~

=~          # regular expression search for a pattern
!~          # regular expression search not for a pattern
Run Code Online (Sandbox Code Playgroud)

有关语法和示例的更多信息,请参阅 Google Cloud Operations Suite 日志记录查询语言参考:https://cloud.google.com/logging/docs/view/logging-query-language#regular-expressions


Sha*_*vek 15

虽然,我来晚了,但您可以在 stackdriver 中完成。

=           # equal
!=          # not equal
> < >= <=   # numeric ordering
:           # "has" matches any substring in the log entry field
Run Code Online (Sandbox Code Playgroud)

如果您想找到所有 500 in 的 GET 响应textPayload,您需要添加过滤器:

textPayload:"500"
Run Code Online (Sandbox Code Playgroud)

要搜索所有zonecentral1它:

resource.labels.zone:"-central1-"
Run Code Online (Sandbox Code Playgroud)

就是这样。您可以参考此链接以获取更多高级过滤器

  • 这些不是正则表达式 (4认同)
  • @avmohan 是的,但有助于找到模式。这不是一个确切的答案,但总比没有好。帮助过我 :) (2认同)

小智 7

Stackdriver Logging产品当前不支持正则表达式。它最初得到了支持(如您在博客文章中所看到的),但是我们发现它很少使用,并且许多用途是用于简单模式,这些模式具有更简单的解决方案,而没有对正则表达式的性能和其他惩罚。

在基本过滤器模式(默认)下,文本搜索自动区分大小写,并且匹配字段值的子字符串,并且您可以使用“ ..”表示数字范围。在高级过滤器模式下,“ has”运算符通过在过滤器表达式中使用a :而不是a完成相同的操作=,例如path.to.field: "value"。(另请参见:编写有效的高级过滤器

如果这些操作员没有实现您的目标,请考虑通过Cloud Console右上方的气泡按钮提交反馈,以提供您的用例和您最终要实现的目标的详细信息,我们会将这些反馈合并为我们计划产品的未来方向。