Google Stackdriver 基于日志的指标:如何使用正则表达式从日志行中提取值

Google Stackdriver Log Based Metrics: how to extract values using a regular expression from the log line

我的 Google 云控制台中有以下形式的日志行:

Updated blacklist info about 123 minions. max_blacklist_per_minion=20, median_blacklist_per_minion=8, blacklist_free_minions=31

并且我正在尝试设置一些基于日志的指标以获得值的长期概览(即它们如何变化?比昨天低还是高?等)。

但是我没有在文档中找到任何关于这种情况的示例,而且我能想到的似乎也行不通。具体来说,我试图了解 select 在 "Field name" 中需要什么才能访问日志行(这样我就可以编写一个正则表达式)。

我试过 textPayload 但是对于这个日志条目来说似乎是空的。查看实际的日志条目也应该有一个 protoPayload.line[0],但这似乎也不起作用

在日志查看器 UI 内置的 "Metric Editor" 中,您可以使用 "protoPayload.line.logMessage" 作为字段名称。出于某种原因,UI 不想建议 'line'(似乎是一个错误;过滤器框中的行为相同)。

基于日志的指标不会根据应用日志行的索引进行区分,因此 'line[0]' 之类的内容将不起作用。对于分布,提取所有值。计数指标将对日志条目进行计数(即 1,无论 'line' 匹配项的数量如何)。