Политика классификации запросов
Процесс классификации назначает входящие запросы группе рабочей нагрузки с учетом характеристик этих запросов. Настройте логику классификации, создав определяемую пользователем функцию в рамках политики классификации запросов на уровне кластера.
При отсутствии включенной политики классификации запросов все запросы классифицируются в группу рабочей нагрузки default
.
Объект политики
Политика имеет следующие свойства.
IsEnabled
:bool
— указывает, включена ли политика.ClassificationFunction
:string
— текст функции, которая используется для классификации запросов.
Классифицирующая функция
Классификация входящих запросов основана на определяемой пользователем функции. Результаты этой функции используются для классификации запросов в существующие группы рабочей нагрузки.
Определяемая пользователем функция имеет следующие характеристики и поведение.
- Если в политике для параметра
IsEnabled
задано значениеtrue
, определяемая пользователем функция вычисляется для каждого нового запроса. - Определяемая пользователем функция предоставляет для запроса контекст группы рабочей нагрузки на все время существования этого запроса.
- Запрос получает контекст группы рабочей нагрузки
default
в следующих ситуациях:- Определяемая пользователем функция возвращает пустую строку
default
или имя несуществующей группы рабочей нагрузки. - эта функция завершается ошибкой по любой причине.
- Определяемая пользователем функция возвращает пустую строку
- В указанный момент времени может быть назначена только одна определяемая пользователем функция.
Важно!
Функция классификации запросов будет оцениваться для каждого запроса, выполняемого в кластере. Мы рекомендуем сделать ее как можно более простой, не выполняя сложных вычислений. Например, избегайте вычисления большого количества регулярных выражений в рамках его выполнения.
Требования и ограничения
Классифицирующая функция имеет следующие ограничения:
Она должна возвращать одно скалярное значение типа
string
, которое соответствует имени группы рабочей нагрузки, в которую нужно назначить запрос.Она не может ссылаться на любую другую сущность (базу данных, таблицу или функцию).
- В частности, она не может использовать следующие функции и операторы:
cluster()
database()
table()
external_table()
externaldata
- В частности, она не может использовать следующие функции и операторы:
Она имеет доступ к специальному символу
dynamic
, который является контейнером свойств с именемrequest_properties
и содержит следующие свойства:Имя Тип Описание Примеры current_database
string
Имя базы данных, к которой направлен запрос. "MyDatabase"
current_application
string
Имя приложения, отправившего запрос. "Kusto.Explorer"
,"KusWeb"
current_principal
string
Полное доменное имя основного удостоверения, отправившего запрос. "aaduser=1793eb1f-4a18-418c-be4c-728e310c86d3;83af1c0e-8c6d-4f09-b249-c67a2e8fda65"
query_consistency
string
Определяет уровень согласованности для запроса: strongconsistency
илиweakconsistency
. Это свойство может быть задано вызывающим абонентом как часть свойств запроса запроса. Свойство клиентского запроса, которое необходимо задать, равно:queryconsistency
."strongconsistency"
,"weakconsistency"
request_description
string
Произвольный текст, который может добавить автор запроса. Этот текст может быть задан вызывающим объектом в составе свойств запроса клиента. Свойству запроса задано значение request_description
."Some custom description"
; автоматически заполняется для панелей мониторинга:"dashboard:{dashboard_id};version:{version};sourceId:{source_id};sourceType:{tile/parameter}"
request_text
string
Текст запроса с примененным маскированием. Все содержащиеся в тексте запроса маскируемые строковые литералы заменяются несколькими символами звездочки ( *
). Примечание: обрабатываются только первые 65 536 символов в тексте запроса.".show version"
request_type
string
Тип запроса: Command
илиQuery
."Command"
,"Query"
Примечание
Установка вышеупомянутых параметров запроса с помощью set
инструкций не допускает их классификацию. Параметры необходимо задать в объекте свойств клиентского запроса.
Примеры
Одна группа рабочей нагрузки
iff(request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query",
"Ad-hoc queries",
"default")
Несколько групп рабочей нагрузки
case(current_principal_is_member_of('aadgroup=somesecuritygroup@contoso.com'), "First workload group",
request_properties.current_database == "MyDatabase" and request_properties.current_principal has 'aadapp=', "Second workload group",
request_properties.current_application == "Kusto.Explorer" and request_properties.request_type == "Query", "Third workload group",
request_properties.current_application == "Kusto.Explorer", "Third workload group",
request_properties.current_application == "KustoQueryRunner", "Fourth workload group",
request_properties.request_description == "this is a test", "Fifth workload group",
hourofday(now()) between (17 .. 23), "Sixth workload group",
"default")
Команды управления
Используйте следующие команды управления для управления политикой классификации запросов кластера.
Get-Help | Описание |
---|---|
.alter cluster request classification policy |
Изменяет политику классификации запросов кластера |
.alter-merge cluster request classification policy |
Включает или отключает политику классификации запросов кластера. |
.delete cluster request classification policy |
Удаляет политику классификации запросов кластера. |
.show cluster request classification policy |
Показывает политику классификации запросов кластера |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по