Проверка того, как долго виртуальная машина запущена или остановлена с помощью языка запросов kusto

#azure-virtual-machine #azure-data-explorer #kql

#azure-virtual-machine #azure-data-explorer #kql

Вопрос:

Я новичок в языке запросов kusto. Мне нужна помощь, как проверить, как долго виртуальная машина завершает работу, и если она запущена, как долго она работала. не могли бы вы помочь мне в этом, потому что я только начинаю изучать язык запросов kusto.

изображение ошибки

ошибка 1 изображение

ошибка 3 изображение

Комментарии:

1. не могли бы вы решить мою проблему как можно скорее

2. Если я хочу использовать Azure Data Explorer для написания языка запросов kusto, то как я могу написать

Ответ №1:

Обновление 1:

введите описание изображения здесь


Оригинальный ответ:

Когда виртуальная машина остановлена, в Deallocate Virtual Machine таблицу AzureActivity отправляются события с именами. Когда виртуальная машина запускается, в Start Virtual Machine таблицу AzureActivity отправляются события с именами.

Таким образом, легко найти, что виртуальная машина запущена или остановлена с помощью приведенного ниже запроса (в Azure monitor -> Журналы):

 AzureActivity 
| where OperationName in ("Deallocate Virtual Machine","Start Virtual Machine")
| project TimeGenerated,OperationName
| top 1 by TimeGenerated desc
 

Если результат запроса содержит Deallocate Virtual Machine , это означает, что виртуальная машина находится в состоянии остановки. В противном случае она находится в состоянии выполнения. Снимок экрана, как показано ниже:

введите описание изображения здесь

Далее, поскольку мы знаем состояние виртуальной машины, например, виртуальная машина находится в состоянии остановки, мы можем написать запрос, чтобы вычислить, сколько времени прошло с момента ее остановки. Для этого мы можем использовать текущее время для уменьшения времени остановки виртуальной машины. Запрос, подобный приведенному ниже:

 let stop_time = AzureActivity 
| where OperationName == "Deallocate Virtual Machine" 
| project TimeGenerated
| top 1 by TimeGenerated desc;
AzureActivity
| extend the_time = now() - toscalar(stop_time)
| project the_time
| top 1 by the_time
 

Вот результат теста:

введите описание изображения здесь

Вы также можете изменить приведенный выше запрос, чтобы рассчитать время выполнения, если виртуальная машина сейчас находится в состоянии выполнения.

Комментарии:

1. я получаю эту ошибку при использовании ur solution: оператор ‘where’: не удалось разрешить выражение таблицы или столбца с именем ‘AzureActivity’

2. Не могли бы вы помочь мне в этом

3. Не могли бы вы помочь, как решить эту проблему

4. @AFFISHMOHAMMAD, где вы запускали этот запрос? вы запускаете ее с azure portal -> monitor -> logs?

5. Я не понял, почему я получаю эту ошибку. не могли бы вы решить мои проблемы как можно скорее