是否可以通过 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")
有多种方法可以做到这一点,我看到实际有效并且可以适用于您的情况的两种方法如下:
利用基于日志的指标。例如,它们可以记录包含特定错误消息的日志条目的数量,或者可以提取日志条目中报告的延迟信息。
Stackdriver Logging 基于日志的指标可以是两种指标类型之一:计数器或分布。 [...] 计数器指标计算与高级日志过滤器匹配的日志条目的数量。 [...] 分布指标从与过滤器匹配的日志条目中累积数字数据。
我建议您仔细阅读文档,检查此功能是否完全覆盖您的用例。
您可以将日志导出到 Big query,一旦您拥有它们,您就可以使用
groupby
、select
等经典工具以及 BigQuery 为您提供的所有工具。
在这里您可以找到有关如何导出日志以及如何使用 BigQuery 分析审核日志的非常简单的逐步指南,但我相信您可以在网上找到许多资源。
产品和方法确实不同,我想说 BigQuery 更灵活,但配置和正确使用它也更复杂。如果您找到第三种更好的方法,请使用这些信息更新您的问题。
首先你必须创建一个指标:
在监控仪表板中
预处理步骤:Rate
对齐功能:计数
对齐周期:1
对齐单位:分钟
分组依据:log
按功能分组:count
这将为您提供条形图中的可视化效果,其中包含所需事件的计数。
还有一种选择。 您可以使用 Stackdriver Monitoring API (https://cloud.google.com/monitoring/api/v3/) 读取自定义指标,并使用您需要的任何聚合在脚本中对其进行处理。
如果您正在使用 python - 您可以查看 gcloud python 库 https://github.com/GoogleCloudPlatform/google-cloud-python/tree/master/monitoring 这将是非常简单的脚本,您可以将计算结果流式传输到 bigquery 表中并在仪表板中使用它
使用 PacketAI,您可以发送任意格式的日志,包括来自 GCP 的日志。然后日志仪表板将自动解析并分组为模式,如本视频所示。 https://streamable.com/n50kr8
还显示不同日志模式的计数和趋势
免责声明:我为PacketAI工作