如何编写Kusto查询以查找字段中具有相同值的两个连续行

时间:2018-10-15 22:45:57

标签: azure-log-analytics kusto azure-data-explorer

我需要为Azure日志分析编写Kusto查询,以查找在字段中具有相同值的连续事件(相同的错误代码)。我们基本上需要确定请求是否连续两次失败。 请求失败,一个成功而一个失败的情况将不返回。

1 个答案:

答案 0 :(得分:4)

假设您有一个包含ID,Datetime和ErrorCode的表,则可以利用prev()函数来实现此目的:

https://docs.microsoft.com/en-us/azure/kusto/query/prevfunction

datatable(Id:string, Datetime:datetime, ErrorCode:string)
[
    '1', datetime(2018-10-16 00:00), 'Error 1',
    '1', datetime(2018-10-16 00:01), 'Error 1',
    '2', datetime(2018-10-16 00:02), 'Error 1',
    '2', datetime(2018-10-16 00:03), 'Error 2',
]
| order by Id, Datetime asc 
| extend prevErrorCode = prev(ErrorCode), prevId=prev(Id)
| where prevErrorCode==ErrorCode and prevId  == Id