Параметры в виде раскрывающегося списка в книге
С помощью параметров раскрывающегося списка можно собирать одно или несколько входных значений из известного набора. Например, можно использовать раскрывающийся список, чтобы выбрать один из запросов приложения. Раскрывающиеся списки предоставляют понятный пользователю способ сбора произвольных входных данных от пользователей. Раскрывающиеся списки особенно полезны при включении фильтрации в интерактивных отчетах.
Самый простой способ задать параметр раскрывающегося списка — это указать статический список в настройке параметров. Более интересный способ — получить список динамически при помощи запроса KQL. Также с помощью настройки параметров можно указать, будет ли он с одиночным или множественным выбором. При множественном выборе можно указать, каким образом должен быть отформатирован результирующий набор, например, в виде разделителя или в кавычках.
Компоненты параметров раскрывающегося списка
При использовании статического содержимого JSON или получения динамических значений из запросов раскрывающиеся параметры позволяют получить до четырех полей информации в этом конкретном порядке:
value
(обязательно): первый столбец или поле в данных используется в качестве литерального значения параметра. В случае простых статических параметров JSON это может быть так же просто, как содержимое["dev", "test", "prod"]
JSON, которое создаст раскрывающийся список из трех элементов с этими значениями как значением, так и меткой в раскрывающемся списке. Имя этого поля не обязательноvalue
, раскрывающийся список будет использовать первое поле в данных независимо от имени.label
(необязательно): второй столбец / поле в данных используется в качестве отображаемого имени или метки параметра в раскрывающемся списке. Если значение не указано, оно используется в качестве метки. Имя этого поля не обязательноlabel
, раскрывающийся список будет использовать второе поле в данных независимо от имени.selected
(необязательно): третий столбец или поле в данных используется для указания значения, которое должно быть выбрано по умолчанию. Если он не указан, элементы по умолчанию не выбраны. Поведение выбора основано на концепции "фальсии" JavaScript, поэтому значения, такие как0
,false
null
или пустые строки, обрабатываются как не выбранные. Имя этого поля не обязательноselected
, раскрывающийся список будет использовать третье поле в данных независимо от имени.Примечание.
Это только управляет выбором по умолчанию , когда пользователь выбрал значения в раскрывающемся списке, используются эти выбранные пользователем значения. Даже если последующий запрос к параметру выполняется и возвращает новые значения по умолчанию. Чтобы вернуться к выбору по умолчанию, можно использовать параметр "Элементы по умолчанию" в раскрывающемся списке, который повторно запрашивает значения по умолчанию и применяет их.
Значения по умолчанию применяются только в том случае, если элементы не были выбраны пользователем.
Если последующий запрос возвращает элементы, которые не включают ранее выбранные значения, отсутствующие значения удаляются из выбора. Выбранные элементы в раскрывающемся списке становятся пересечением элементов, возвращаемых запросом, и выбранными ранее элементами.
group
(необязательно): в отличие от других полей, столбец группировки должен называтьсяgroup
и отображаться послеvalue
иlabel
selected
. Это поле в данных используется для группировки элементов в раскрывающемся списке. Если это не указано, группирование не используется. Если выбор по умолчанию не нужен, данные или запрос по-прежнему должны возвращать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 |
{DependencyName:value} |
Выбранное значение (аналогично приведенному выше) | GET fabrikamaccount |
{DependencyName:label} |
Выбранная метка | 🌐 GET fabrikamaccount |
{DependencyName:escape} |
Выбранное значение с любыми общими символами кавычки, замененными при форматировании в запросы | GET fabrikamaccount |
Несколько выборок
В рассмотренных примерах явно задан параметр для выбора только одного значения в раскрывающемся списке. Параметры раскрывающегося списка также поддерживают множественный выбор. Чтобы включить этот параметр, установите флажок Разрешить множественный выбор.
Вы можете указать формат результирующего набора с помощью параметров Разделитель и Кавычки. По умолчанию ,
(запятая) используется в качестве разделителя, а '
(одинарный кавычки) используется в качестве символа кавычки. Значение по умолчанию возвращается в виде коллекции в виде '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 и разрешение пустого выбора для обработки как "Все"
При выборе "Все" появится дополнительное поле, позволяющее указать специальное значение для параметра All . Это полезно, если "Все" может быть большим количеством элементов и может создать очень большой запрос.
В этом конкретном случае строка []
используется вместо значения. Эта строка может использоваться для создания пустого массива в запросе журналов, например:
let selection = dynamic([{Selection}]);
SomeQuery
| where array_length(selection) == 0 or SomeField in (selection)
Если выбраны все элементы, значение Selection
[]
имеет значение , создающее пустой массив для переменной selection
в запросе. Если значения не выбраны, значение Selection
отформатировано как пустая строка, что также приводит к пустому массиву. Если выбраны какие-либо значения, они форматируются внутри динамической части запроса, что приводит к возникновению этих значений массива. Затем можно проверить наличие array_length
фильтра без применения или использования in
оператора для фильтрации значений в массиве.
Другие распространенные примеры используют "*" в качестве специального значения маркера, если требуется параметр, а затем тестировать с помощью:
| where "*" in ({Selection}) or SomeField in ({Selection})
Следующие шаги
Узнайте о типах визуализаций, которые можно использовать для создания расширенных визуальных отчетов с помощью книг Azure.