创建一个基于日志的指标来跟踪 2 个日志之间的差异
Create a log-based metrics that keeps track of the delta between 2 logs
假设我有 3 个协同工作的应用程序,并使用 pub-sub 为 "management" 发送消息。
假设有一个 "transaction 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 - 在时间 timestamp10
- 在 app1 中 - 需要 (timestamp02-timestamp01) 秒
- 在 app2 中 - 需要 (timestamp06-timestamp03) 秒
- 在 app3 中 - 需要 (timestamp10-timestamp07) 秒
- 总共 - 需要 (timestamp10-timestamp01) 秒
transactionIdY - 在时间 timestamp12
- 在 app1 中 - 需要 (timestamp05-timestamp04) 秒
- 在 app2 中 - 需要 (timestamp09-timestamp08) 秒
- 在 app3 中 - 需要 (timestamp12-timestamp11) 秒
- 总共需要 (timestamp12-timestamp04) 秒
有没有一种方法可以构建提供此类信息的基于日志的指标?
目前,仅使用基于日志的指标无法做到这一点 API。基于日志的指标管道不维护两个日志条目之间的状态,因此您无法捕获两个值并制定查询来捕获两者之间的差异。
我看到了两种可能的解决方法:
- 检测您的应用以保留有关事务延迟的统计信息,并将其输出到日志中并使用基于日志的指标捕获它。
- 在查询时使用与 Stackdriver 集成的类似 Cloud Datalab 的脚本执行此类计算。
免责声明:我是 Google Stackdriver 的一名工程师。
我目前正在编写示例解决方案。将 post 它放在其他线程上:Latency SLO from logs on GCP Cloud Logging
假设我有 3 个协同工作的应用程序,并使用 pub-sub 为 "management" 发送消息。 假设有一个 "transaction 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 - 在时间 timestamp10
- 在 app1 中 - 需要 (timestamp02-timestamp01) 秒
- 在 app2 中 - 需要 (timestamp06-timestamp03) 秒
- 在 app3 中 - 需要 (timestamp10-timestamp07) 秒
- 总共 - 需要 (timestamp10-timestamp01) 秒
transactionIdY - 在时间 timestamp12
- 在 app1 中 - 需要 (timestamp05-timestamp04) 秒
- 在 app2 中 - 需要 (timestamp09-timestamp08) 秒
- 在 app3 中 - 需要 (timestamp12-timestamp11) 秒
- 总共需要 (timestamp12-timestamp04) 秒
有没有一种方法可以构建提供此类信息的基于日志的指标?
目前,仅使用基于日志的指标无法做到这一点 API。基于日志的指标管道不维护两个日志条目之间的状态,因此您无法捕获两个值并制定查询来捕获两者之间的差异。
我看到了两种可能的解决方法:
- 检测您的应用以保留有关事务延迟的统计信息,并将其输出到日志中并使用基于日志的指标捕获它。
- 在查询时使用与 Stackdriver 集成的类似 Cloud Datalab 的脚本执行此类计算。
免责声明:我是 Google Stackdriver 的一名工程师。
我目前正在编写示例解决方案。将 post 它放在其他线程上:Latency SLO from logs on GCP Cloud Logging