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

Nic*_*ian 3 azure-log-analytics kusto azure-data-explorer

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

小智 5

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

https://docs.microsoft.com/zh-cn/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
Run Code Online (Sandbox Code Playgroud)