拥有一组日志,例如:
Log10:[requestId=2][taskId=C][message='End']
Log9: [requestId=2][taskId=C][message='Start']
Log8: [requestId=2][taskId=B][message='End']
Log7: [requestId=1][taskId=B][message='End']
Log6: [requestId=1][taskId=B][message='Start']
Log5: [requestId=1][taskId=A][message='End']
Log4: [requestId=2][taskId=B][message='Start']
Log3: [requestId=2][taskId=A][message='End']
Log2: [requestId=2][taskId=A][message='Start']
Log1: [requestId=1][taskId=A][message='Start']
首先,我想计算完成每个任务所需的平均时间。我能够通过 transactionize 做到这一点:
* | concat(requestId,":",taskId) as transactionKey | transactionize transactionKey avg(_group_duration) group by taskId
现在,我愿意知道一个任务完成和下一个任务开始之间发生了多少时间(平均)。
在这个具体的例子中,我想要的输出是:
((Log9 - Log8) + (Log4 - Log3) + (Log6 - Log5)) / 3
任何线索表示赞赏。