Я пытаюсь написать запрос App Insights, который сообщит о временном интервале между двумя известными событиями, в частности, событиями отключения и отключения автоматического выключателя. Предполагается, что эти события всегда происходят парами, поэтому нам нужно знать время между ними для каждого вхождения в период времени.
Моей первой попыткой было использование встроенной функции. Упрощенная версия ниже.
let timeOpened = (timeClosed:datetime)
{
let result = customEvents
| where name == 'CircuitBreakerStatusChange'
| where customDimensions['State'] == 'Open'
| where timestamp < timeClosed
| order by timestamp desc
| take 1
| project timestamp;
let scalar = toscalar(result);
scalar
};
customEvents
| where timestamp > ago(4h)
| where name == 'CircuitBreakerStatusChange'
| where customDimensions['State'] == 'Closed'
| extend timeOpen = timestamp - timeOpened(timestamp)
Возможно, есть лучший способ сделать это. Если так, то ваши идеи приветствуются! Но в этой конкретной попытке единственная обратная связь, которую я получаю от Azure при запуске, это «Синтаксическая ошибка». Однако я не верю, что здесь есть синтаксическая ошибка, потому что, если я просто изменю возвращаемое значение функции с scalar
на now()
, она будет выполнена успешно. Также я могу успешно запустить тело функции в изоляции. Есть идеи, что здесь не так?