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

时间:2018-04-26 06:34:27

标签: google-cloud-platform google-bigquery stackdriver google-cloud-console

是否可以从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")

*

更新2018-04-27

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

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

4 个答案:

答案 0 :(得分:1)

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

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

      

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

    我建议您阅读文档以检查此功能是否完全涵盖您的使用案例。

  • 您可以export your logs to Big query,一旦拥有它们,您就可以使用经典工具,例如groupbyselect以及BigQuery为您提供的所有工具。

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

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

答案 1 :(得分: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表并在仪表板中使用它

答案 2 :(得分:0)

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

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

Stacked bar diagram with Aggregation: sum and Aligner: sum

答案 3 :(得分:0)

首先你必须创建一个指标:

  1. 转到日志浏览器。
  2. 输入您的查询
  3. 转到操作 >> 创建指标。

在监控仪表板中

  1. 创建图表。
  2. 选择资源和指标。
  3. 转到“高级”并提供以下详细信息:

预处理步骤:评价

对齐功能:计数

对齐期:1

校准单位:分钟

分组方式:日志

按功能分组:计数

这将为您提供条形图的可视化效果,其中包含所需事件的计数。