Мне нужно написать запрос Kusto для анализа журналов Azure, который находит последовательные события, которые имеют одинаковое значение в поле (тот же код ошибки). Нам в основном нужно выяснить, не срабатывают ли запросы дважды подряд. Случай, когда запрос не выполняется, один успешен, а другой нет, не подлежит возврату.
Как написать запрос Кусто, чтобы найти две последовательные строки, которые имеют одинаковое значение в поле
Ответы (1)
Предполагая, что у вас есть таблица с 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
person
Alexander Sloutsky
schedule
16.10.2018