计算指定时间内GCP日志条目的数量

And*_*ren 8 google-bigquery google-cloud-console google-cloud-platform stackdriver

是否可以计算GCP Stackdriver日志记录在特定时间段内特定日志消息出现的次数?回答问题“此时间段内此事件发生了多少次”。基本上,我想要下表中曲线的积分。

它不必是一个移动的窗口,这一次它是一次性任务。如果可以的话,高级日志查询中的计数汇总器或类似工具也可以使用。

堆栈驱动程序中基于示例日志的指标图

查询如下所示:

(resource.type="container"
logName="projects/xyz-142842/logs/drs"
"Publish Message for updated entity"
) AND (timestamp>="2018-04-25T06:20:53Z" timestamp<="2018-04-26T06:20:53Z")
Run Code Online (Sandbox Code Playgroud)

我上图的基于日志的指标如下所示: 基于日志的metrig,类型=计数器,单位= 1

我的仪表板的设置如下: 具有汇总总和的仪表板

And*_*ren 5

我最终建造了堆叠的酒吧。

通过正确的缩放级别,我可以很容易地总结出现的次数。直接从图表(积分)中获取计数本来是一个很好的功能,但目前这有效。

具有聚合:总和和对齐器:总和的堆​​叠条形图


Gal*_*one 2

有多种方法可以做到这一点,我认为实际有效并且可以适用于您的情况的两种方法如下:

  • 利用基于日志的指标。例如,它们可以记录包含特定错误消息的日志条目的数量,或者可以提取日志条目中报告的延迟信息。

    Stackdriver Logging 基于日志的指标可以是两种指标类型之一:计数器或分布。[...]计数器指标对与高级日志过滤器匹配的日志条目数进行计数。[...]分布指标从与过滤器匹配的日志条目中累积数字数据。

    我建议您仔细阅读文档,检查此功能是否完全涵盖您的用例。

  • 您可以将日志导出到 Big query,一旦您拥有它们,您就可以使用经典工具,例如groupbyselect以及 BigQuery 为您提供的所有工具。

    在这里,您可以找到有关如何导出日志以及如何使用 BigQuery 分析审核日志的非常简单的分步指南,但我相信您可以在网上找到许多资源。


产品和方法确实不同,我想说 BigQuery 更灵活,但配置和正确使用它也更复杂。如果您找到第三种更好的方法,请使用这些信息更新您的问题。

  • 我用更多信息更新了问题。我确实使用了计数器类型的基于日志的指标,并将其显示在具有聚合总和的仪表板上,并且它确实计数,但每秒计数。我需要更长时间的积分。我将尝试大查询选项! (3认同)