是否可以从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")
Update 2018-04-27
我上面图表的基于日志的指标如下所示:
我的仪表板设置如下:
3 回答
有多种方法可以这样做,我看到实际工作的两种方法可以适用于您的情况如下:
我建议您通过文档来检查此功能是否完全覆盖您的用例 .
groupby
,select
这样的经典工具以及BigQuery为你提供的所有工具 .Here您可以找到关于如何导出日志以及如何使用BigQuery分析审核日志的非常小的步骤指南,但我相信您可以在线找到许多资源 .
产品和方法确实不同,我会说BigQuery更灵活,但配置和正确使用它也更复杂 . 如果您找到第三种更好的方法,请使用这些信息更新您的问题 .
还有一个选择 . 您可以使用Stackdriver Monitoring API(https://cloud.google.com/monitoring/api/v3/)读取自定义指标,并使用您需要的任何聚合在脚本中处理它 .
如果您正在使用python - 您可以查看gcloud python库https://github.com/GoogleCloudPlatform/google-cloud-python/tree/master/monitoring这将是非常简单的脚本,您可以将计算结果流式传输到bigquery表并在仪表板中使用它
我最终 Build 堆积的酒吧 .
使用正确的缩放级别,我可以很容易地总结出现次数 . 直接从图形(积分)获取计数本来是一个很好的功能,但这现在适用 .