首页 文章

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

提问于
浏览
4

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

它不一定是一个移动窗口,这次它更像是一次性任务 . 如果可用,高级日志查询中的计数聚合器或类似物也将起作用 .

Example log based metric chart in stack driver

查询如下所示:

(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

我上面图表的基于日志的指标如下所示:
Log based metrig with Type=Counter and Units=1

我的仪表板设置如下:
Dashboard with aggregation sum

3 回答

  • 0

    有多种方法可以这样做,我看到实际工作的两种方法可以适用于您的情况如下:

    • 利用Logs-based Metrics . 例如,它们可以记录包含特定错误消息的日志条目的数量,或者它们可以提取日志条目中报告的延迟信息 .

    Stackdriver日志记录基于日志的度量标准可以是两种度量标准类型之一:计数器或分布 . [...]计数器指标计算与高级日志过滤器匹配的日志条目数 . [...]分布指标累积来自与过滤器匹配的日志条目的数字数据 .

    我建议您通过文档来检查此功能是否完全覆盖您的用例 .

    • 你可以export your logs to Big query,一旦你拥有它们就可以使用像 groupbyselect 这样的经典工具以及BigQuery为你提供的所有工具 .

    Here您可以找到关于如何导出日志以及如何使用BigQuery分析审核日志的非常小的步骤指南,但我相信您可以在线找到许多资源 .


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

  • 0

    还有一个选择 . 您可以使用Stackdriver Monitoring API(https://cloud.google.com/monitoring/api/v3/)读取自定义指标,并使用您需要的任何聚合在脚本中处理它 .

    如果您正在使用python - 您可以查看gcloud python库https://github.com/GoogleCloudPlatform/google-cloud-python/tree/master/monitoring这将是非常简单的脚本,您可以将计算结果流式传输到bigquery表并在仪表板中使用它

  • 1

    我最终 Build 堆积的酒吧 .

    使用正确的缩放级别,我可以很容易地总结出现次数 . 直接从图形(积分)获取计数本来是一个很好的功能,但这现在适用 .

    Stacked bar diagram with Aggregation: sum and Aligner: sum

相关问题