来自负载的 GCP 日志记录负载 (Stackdriver)

GCP logging payload from payload (Stackdrive)

我有以下日志:

我的目标是创建一个自定义指标,我可以在 Stackdriver 上使用它来收集 items 的数量(计数),在这种情况下(巧克力、薯片和饼干),但是,即使我可以看到 Metric 上的低记录,它们从未出现在 stackdriver 上。

我使用了正则表达式,构建显示:

这让我觉得我的设置是正确的,但显然我做错了什么。

有什么想法吗?

Logs-to-metrics

您可能想要创建计数器类型而不是分发。

如果日志查看器中显示的列表符合日志计数标准,则您的过滤器是正确的。您缺少的步骤是您应该使用 items 作为标签,以便 items 值(例如 cookieschips 等)成为您的标签值。此外,这些值变为 open-ended,如果您随后添加 candies,这些值将自动包括在内。

参见:

https://cloud.google.com/logging/docs/logs-based-metrics/counter-metrics https://cloud.google.com/logging/docs/logs-based-metrics/labels

NB 您的正则表达式 (\d+) 匹配 +(一个或多个)\d(数字)。

自定义指标

您可以考虑的另一种方法是检测您的应用程序以直接发出这些指标|测量值。 OpenCensus 是一个 general-purpose 解决方案,可以很好地与 Stackdriver 配合使用。将您的代码扩充到例如计算芯片、饼干等的出现次数

https://cloud.google.com/monitoring/custom-metrics/open-census

如果您能够编辑应用程序代码,这可能是更 'pure' 解决您的问题的方法。它还允许比 logs-to-metrics.

更大的灵活性

与日志一样,OpenCensus 还可以灵活地支持除 Stackdriver 之外的监控解决方案。与日志不同,[OpenCensus] 指标代表结构丰富的数据,而不是必须解析才能变得有用的文本。