创建基于日志的指标,以跟踪2个日志之间的增量

时间:2019-04-19 11:55:42

标签: google-cloud-platform metrics stackdriver google-cloud-stackdriver

比方说,我有3个可一起使用的应用程序,并使用pub-sub发送“管理”消息。 假设在开始时创建了一个“交易ID”,并将其传递到应用程序中,并记录在日志中。

我将获得如下日志:

app1 - transactionIdX - started - timestamp01
app1 - transactionIdX - ended - timestamp02
app2 - transactionIdX - started - timestamp03
app1 - transactionIdY - started - timestamp04
app1 - transactionIdY - ended - timestamp05
app2 - transactionIdX - ended - timestamp06
app3 - transactionIdX - started - timestamp07
app2 - transactionIdY - started - timestamp08
app2 - transactionIdY - ended - timestamp09
app3 - transactionIdX - ended - timestamp10
app3 - transactionIdY - started - timestamp11
app3 - transactionIdY - ended - timestamp12

我希望有一个指标可以揭示此类信息:

  • transactionIdX-时间为时间戳10

    • 在app1中-需要(timestamp02-timestamp01)秒
    • 在app2中-需要(timestamp06-timestamp03)秒
    • 在app3中-需要(timestamp10-timestamp07)秒
    • 总计-所需(timestamp10-timestamp01)秒
  • transactionIdY-在时间戳记12

    • 在app1中-需要(timestamp05-timestamp04)秒
    • 在app2中-需要(timestamp09-timestamp08)秒
    • 在app3中-需要(timestamp12-timestamp11)秒
    • 总计-所需(timestamp12-timestamp04)秒

是否有一种方法可以建立基于日志的度量标准来提供此类信息?

2 个答案:

答案 0 :(得分:1)

当前,仅通过使用基于日志的指标API不能完成此操作。基于日志的指标管道不会维护两个日志条目之间的状态,因此您无法捕获两个值,也无法制定查询来捕获两者之间的差异。

我看到两个可能的解决方法:

  1. 指示您的应用以保留有关事务延迟的统计信息,并将其输出到日志中,并使用基于日志的指标进行捕获。
  2. 使用Cloud Datalab之类的脚本(与Stackdriver集成)在查询时执行此类计算。

免责声明:我是Google Stackdriver的工程师。

答案 1 :(得分:0)

立即使用GCP提供的工具,您只能执行下一个操作:

1)在下拉列表中选择所有应用程序:

enter image description here

2)按transactionIdX过滤日志,以便您查看此交易的所有服务日志:

enter image description here

3)或者您可以使用高级过滤器并创建更复杂的过滤器:

enter image description here