Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью параметров раскрывающегося списка можно собирать одно или несколько входных значений из известного набора. Например, можно использовать раскрывающийся список, чтобы выбрать один из запросов приложения. Раскрывающиеся списки предоставляют понятный пользователю способ сбора произвольных входных данных от пользователей. Раскрывающиеся списки особенно полезны при включении фильтрации в интерактивных отчетах.
Самый простой способ задать параметр раскрывающегося списка — это указать статический список в настройке параметров. Более интересный способ — получить список динамически при помощи запроса KQL. Также с помощью настройки параметров можно указать, будет ли он с одиночным или множественным выбором. При множественном выборе можно указать, каким образом должен быть отформатирован результирующий набор, например, с использованием символа-разделителя или в кавычках.
Компоненты параметров выпадающего списка
При использовании статического содержимого JSON или получения динамических значений из запросов раскрывающиеся параметры позволяют получить до четырех полей информации в этом конкретном порядке:
value(обязательно): первый столбец или поле в данных используется в качестве литерального значения параметра. В случае простых статических параметров JSON это может быть так же просто, как содержимое["dev", "test", "prod"]JSON, которое создаст раскрывающийся список из трех элементов с этими значениями как значением, так и меткой в раскрывающемся списке. Имя этого поля не обязательноvalue, раскрывающийся список будет использовать первое поле в данных независимо от имени.label(необязательно): второй столбец / поле в данных используется в качестве отображаемого имени или метки параметра в раскрывающемся списке. Если значение не указано, оно используется в качестве метки. Имя этого поля не обязательноlabel, раскрывающийся список будет использовать второе поле в данных независимо от имени.selected(необязательно): третий столбец или поле в данных используется для указания значения, которое должно быть выбрано по умолчанию. Если он не указан, элементы по умолчанию не выбраны. Поведение выбора основано на концепции "фальсии" JavaScript, поэтому значения, такие как0,falsenullили пустые строки, обрабатываются как не выбранные. Имя этого поля не обязательноselected, раскрывающийся список будет использовать третье поле в данных независимо от имени.Примечание.
Это только управляет выбором по умолчанию , когда пользователь выбрал значения в раскрывающемся списке, используются эти выбранные пользователем значения. Даже в случае, если последующий запрос к параметру выполняется и возвращает новые значения по умолчанию. Чтобы вернуться к выбору по умолчанию, можно использовать параметр "Элементы по умолчанию" в раскрывающемся списке, который повторно запрашивает значения по умолчанию и применяет их.
Значения по умолчанию применяются только в том случае, если элементы не были выбраны пользователем.
Если последующий запрос возвращает элементы, которые не включают ранее выбранные значения, отсутствующие значения удаляются из выбора. Выбранные элементы в раскрывающемся списке становятся пересечением элементов, возвращаемых запросом, и выбранными ранее элементами.
group(необязательно): в отличие от других полей, столбец группировки должен называтьсяgroupи отображаться послеvalueиlabelselected. Это поле в данных используется для группировки элементов в раскрывающемся списке. Если это не указано, группирование не используется. Если выбор по умолчанию не нужен, данные или запрос по-прежнему должны возвращатьselectedполе по крайней мере в одном объекте или строке, даже если все значения имеют значениеfalse.
Примечание.
Любые другие поля в данных игнорируются параметром раскрывающегося списка. Рекомендуется ограничить содержимое только теми полями, которые используются раскрывающимся списком, чтобы избежать сложных запросов, возвращающих данные, которые игнорируются.
Создание параметра статического раскрывающегося списка
Начните с пустой книги в режиме редактирования.
Выберите Добавить параметры>Добавить параметр.
В открывшейся области параметров введите:
Имя параметра:
EnvironmentТип параметра:
Drop downТребуется:
checkedРазрешить множественный выбор:
uncheckedПолучите данные из:
JSONили выберитеQueryи выберитеJSONисточник данных.Источник данных JSON позволяет содержимому JSON ссылаться на все существующие параметры.
Вставьте следующий фрагмент JSON в блок входных текстовых данных JSON:
[ { "value":"dev", "label":"Development" }, { "value":"ppe", "label":"Pre-production" }, { "value":"prod", "label":"Production", "selected":true } ]Выберите Обновить.
Нажмите кнопку Сохранить, чтобы создать параметр.
Параметр Environment — это раскрывающийся список с тремя значениями.
Создание статического раскрывающегося списка с группами элементов
Если результат запроса или JSON содержит поле group, в раскрывающемся списке отображаются группы значений. Следуйте приведенному выше примеру, но вместо этого используйте следующий код JSON:
[
{ "value":"dev", "label":"Development", "group":"Development" },
{ "value":"dev-cloud", "label":"Development (Cloud)", "group":"Development" },
{ "value":"ppe", "label":"Pre-production", "group":"Test" },
{ "value":"ppe-test", "label":"Pre-production (Test)", "group":"Test" },
{ "value":"prod1", "label":"Prod 1", "selected":true, "group":"Production" },
{ "value":"prod2", "label":"Prod 2", "group":"Production" }
]
Примечание.
При использовании поля group в запросе необходимо также указать значения для полей label и selected.
Создайте параметр динамического раскрывающегося списка
Начните с пустой книги в режиме редактирования.
Выберите Добавить параметры>Добавить параметр.
В открывшейся области параметров введите:
-
Имя параметра:
RequestName -
Тип параметра:
Drop down -
Требуется:
checked -
Разрешить множественный выбор:
unchecked -
Получать данные из:
Query
-
Имя параметра:
Вставьте следующий фрагмент JSON в блок входных текстовых данных JSON:
requests | summarize by name | order by name ascСнова выберите Выполнение запроса.
Нажмите кнопку Сохранить, чтобы создать параметр.
Параметр RequestName — это раскрывающийся список со именами всех запросов в приложении.
Пример: пользовательские метки, выбор первого элемента по умолчанию и группирование по имени операции
Запрос, используемый для предыдущего динамического раскрывающегося списка, возвращает список значений, которые отображаются в этом списке. Если требуется другое отображаемое имя или разрешить пользователю выбрать отображаемое имя, используйте значение, метку, выделение и столбцы группы.
В следующем примере показано, как получить список отдельных зависимостей Application Insights. Отображаемые имена стильируются с эмодзи, первый элемент выбирается по умолчанию, а элементы группируются по именам операций:
dependencies
| summarize by operation_Name, name
| where name !contains ('.')
| order by name asc
| serialize Rank = row_number()
| project value = name, label = strcat('🌐 ', name), selected = iff(Rank == 1, true, false), group = operation_Name
Ссылка на параметр раскрывающегося списка
Вы можете ссылаться на параметры раскрывающегося списка в любом месте, где можно использовать параметры, включая замену значения параметра в запросы, параметры визуализации, текстовое содержимое Markdown или другие места, где можно выбрать параметр в качестве параметра.
В KQL
Выберите Добавить запрос, чтобы добавить элемент управления запросом, а затем выберите ресурс Application Insights.
В редакторе KQL введите этот фрагмент кода:
requests | where name == '{RequestName}' | summarize Requests = count() by bin(timestamp, 1h)Этот фрагмент увеличивает время оценки запроса до:
requests | where name == 'GET Home/Index' | summarize Requests = count() by bin(timestamp, 1h)Выполните запрос, чтобы просмотреть результаты. При необходимости выводите его в виде диаграммы.
Настройки параметров раскрывающегося списка
| Параметр | Описание | Пример |
|---|---|---|
{DependencyName} |
Выбранное значение | GET fabrikamaccount (получить учетную запись fabrikam) |
{DependencyName:value} |
Выбранное значение (аналогично приведенному выше) | GET fabrikamaccount |
{DependencyName:label} |
Выбранная метка | 🌐 GET fabrikamaccount |
{DependencyName:escape} |
Выбранное значение, где любые стандартные символы кавычек заменены при форматировании в запросы. | GET fabrikamaccount (получить аккаунт Fabrikam) |
Несколько выборок
В рассмотренных примерах явно задан параметр для выбора только одного значения в раскрывающемся списке. Параметры раскрывающегося списка также поддерживают множественный выбор. Чтобы включить этот параметр, установите флажок Разрешить множественный выбор.
Вы можете указать формат результирующего набора с помощью параметров Разделитель и Кавычки. По умолчанию , (запятая) используется в качестве разделителя, а ' (одинарная кавычка) используется в качестве символа кавычки. Значение по умолчанию возвращается в виде коллекции в виде 'a', 'b', 'c' форматирования в запросе. Кроме того, можно ограничить максимальное количество выбранных элементов.
При использовании нескольких параметров выбора в запросе убедитесь, что KQL, ссылающийся на параметр, работает с форматом результата. Например:
- Один параметр значения не включает кавычки при форматировании в запрос, поэтому обязательно включите кавычки в сам запрос, например:
where name == '{parameter}' - Кавычки включаются в форматированный параметр при использовании нескольких параметров выбора, поэтому убедитесь, что запрос не содержит кавычки. Например,
where name in ({parameter}).
Обратите внимание, как этот пример также переключился с name == на name in. Оператор == разрешает только одно значение, а in оператор разрешает несколько значений.
dependencies
| where name in ({DependencyName})
| summarize Requests = count() by bin(timestamp, 1h), name
В этом примере показан параметр раскрывающегося списка с множественным выбором.
Специальные выборы раскрывающегося списка
Параметры раскрывающегося списка также позволяют указать специальные значения, которые также отображаются в раскрывающемся списке:
- Любой из них
- Любые три
- ...
- Любой 100
- Любое настраиваемое ограничение
- Все
При выборе этих специальных элементов значение параметра автоматически устанавливается на определенное количество элементов или все значения.
Особое обращение с "Все" и разрешение обрабатывать пустой выбор как "Все"
При выборе "Все" появится дополнительное поле, позволяющее указать специальное значение для параметра All . Это полезно, если "Все" может означать большое количество элементов и может сформировать очень большой запрос.
В этом конкретном случае строка [] используется вместо значения. Эта строка может использоваться для создания пустого массива в запросе журналов, например:
let selection = dynamic([{Selection}]);
SomeQuery
| where array_length(selection) == 0 or SomeField in (selection)
Если выбраны все элементы, значение Selection[]имеет значение , создающее пустой массив для переменной selection в запросе. Если значения не выбраны, значение Selection отформатировано как пустая строка, что также приводит к пустому массиву. Если выбраны какие-либо значения, они форматируются внутри динамической части запроса, в результате чего массив содержит эти значения. Затем можно протестировать значение array_length равное 0, чтобы фильтр не применялся, или использовать in оператор для фильтрации значений в массиве.
Другие распространенные примеры используют "*" в качестве специального значения маркера, если требуется параметр, а затем тестировать с помощью:
| where "*" in ({Selection}) or SomeField in ({Selection})