Google cloud platform 创建一个基于日志的度量,用于跟踪两个日志之间的增量

Google cloud platform 创建一个基于日志的度量,用于跟踪两个日志之间的增量,google-cloud-platform,metrics,stackdriver,google-cloud-stackdriver,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 - t

假设我有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中-需要(时间戳10-7)秒
    • 总计-需要(时间戳10-01)秒
  • TransactionId-在时间戳12时

    • 在app1中-需要(timestamp05-timestamp04)秒
    • 在app2中-需要(timestamp09-timestamp08)秒
    • 在app3中-需要(时间戳12-11)秒
    • 总计-所需时间(时间戳12-4)秒

有没有一种方法可以构建基于日志的度量来提供此类信息?

目前,仅使用基于日志的度量API无法实现这一点。基于日志的度量管道不维护两个日志条目之间的状态,因此您无法捕获两个值并制定查询以捕获两者之间的差异

我认为有两种可能的解决办法:

  • 为您的应用程序添加工具,以保留有关事务延迟的统计信息,并在日志中输出这些信息,并使用基于日志的度量来捕获这些信息
  • 使用与Stackdriver集成的类似脚本在查询时执行此类计算

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

    使用GCP目前提供的现成工具,您只能执行以下操作:

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

    2) 按您的
    transactionIdX
    筛选日志,以便查看此事务的所有服务的日志:

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


    您似乎可以轻松地用Python/Ruby/任何语言编写一个脚本,从日志数据中提取这个脚本,但我猜您指的是其他东西。也许你可以试着让这个问题更明确一些?我真正的问题是,是否有一种方法可以不用外部应用程序,只需使用度量创建api就可以做到这一点