Log Analytics сохраняет порядок из переменной при использовании in () - PullRequest
0 голосов
/ 27 апреля 2020

Я новичок в Log Analytics и пытаюсь получить топ-10 компьютеров с заказчиком «% Free Space» по «_Total» и всеми дисками, сгруппированными по компьютерам, упорядоченными по «_Total», например:

let top_10_free =
Perf
| where ObjectName == "LogicalDisk" and CounterName == "% Free Space" and InstanceName == "_Total" and TimeGenerated > todatetime("2020-01-01 00:00:00")
| summarize arg_max(TimeGenerated, *) by Computer
| top 10 by CounterValue desc nulls last
| project Computer;
Perf
| where ObjectName == "LogicalDisk" and CounterName == "% Free Space" and Computer in(top_10_free)
| summarize arg_max(TimeGenerated, *) by InstanceName, Computer 
| project-rename Ultimo_Check = TimeGenerated, Instancia = Computer, Particion = InstanceName, Porcentaje_Disponible = CounterValue
| project  Ultimo_Check, Instancia, Particion, Porcentaje_Disponible

В этом запросе компьютеры упорядочены в "top_10_free", но не в окончательном выводе.

top_10_free result (with CounterValue added to project)

Окончательный вывод ( это почти то, что я хочу, за исключением того, что компьютеры находятся не в нужном порядке): final output of the query

Подводя итог, я хочу, чтобы группа серверов второго img (под колонка Instancia) упорядочена как серверы в первом img (под колонкой Computer).

Ожидаемый результат:

+---------------+-----------+-----------+-----------------------+
|Ultimo_Check   |Instancia  |Particion  |Porcentaje_Disponible  |
+---------------+-----------+-----------+-----------------------+
|somedate       |server10   |C:         |97,402                 |
+---------------+-----------+-----------+-----------------------+
|somedate       |server10   |D:         |83,363                 |
+---------------+-----------+-----------+-----------------------+
|somedate       |server10   |_Total     |90,383                 |
+---------------+-----------+-----------+-----------------------+
|somedate       |server     |C:         |83,849                 |
+---------------+-----------+-----------+-----------------------+
|somedate       |server     |D:         |91,185                 |
+---------------+-----------+-----------+-----------------------+
|somedate       |server     |_Total     |87,617                 |
+---------------+-----------+-----------+-----------------------+
|somedate       |AK         |C:         |67,599                 |
+---------------+-----------+-----------+-----------------------+
|somedate       |AK         |HarddiskVol|30,461                 |
+---------------+-----------+-----------+-----------------------+
|somedate       |AK         |_Total     |67,735                 |
+---------------+-----------+-----------+-----------------------+
Then AC with _Total = 66,281
Then CU with _Total = 63,249
Then CO with _Total = 37,563
Then GR with _Total = 36,19

Заранее спасибо.

1 Ответ

0 голосов
/ 27 апреля 2020

Помогает ли добавление order by в конце? например:

...
| project  Ultimo_Check, Instancia, Particion, Porcentaje_Disponible
| order by Instancia asc, Porcentaje_Disponible desc

Отредактировано для добавления комментария, решившего проблему

order by упорядочивает записи в соответствии с ключами сортировки. он не упорядочивает «группы записей», поскольку такого понятия нет ни в языке запросов, ни в нижележащем слое данных. Вы можете реструктурировать свои данные (во время запроса) так, чтобы у вас была запись для каждой «группы» (например, иметь _Total в виде одного столбца, а остальные диски в наборе свойств, например {"C:":1234, "D:":3456}. затем, Вы можете упорядочить записи (теперь «группы») по столбцу _Total

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...