我有以下日志:
我的目标是创建一个自定义指标,我可以在Stackdriver上使用该指标来收集items
的数量(计数),在这种情况下(例如,巧克力,薯条和Cookie),即使我看到了指标上的最低记录,它们永远不会显示在堆栈驱动程序上。
我使用了正则表达式,构建过程显示:
这让我认为我将其设置为正确的方式,但显然我做错了。
有什么想法吗?
答案 0 :(得分:1)
您可能要创建计数器类型而不是分布。
如果日志查看器中显示的列表符合对日志进行计数的条件,则您的过滤器是正确的。您缺少的步骤是应使用items
作为标签,以使items
值(例如cookies
,chips
等)成为标签值。此外,这些值将成为开放式的,并且,如果您随后添加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是一种通用解决方案,可与Stackdriver一起使用。将代码扩展为例如,很简单(支持多种语言)。计算芯片,Cookie等的出现次数。
https://cloud.google.com/monitoring/custom-metrics/open-census
如果您能够编辑应用程序代码,这可能是更“纯粹”的解决方案。它还比日志到度量标准具有更大的灵活性。
像日志一样,OpenCensus还为您提供了灵活的支持,以监控Stackdriver以外的解决方案。与日志不同,[OpenCensus]指标代表结构丰富的数据,而不是必须分析才能有用的文本。