Мониторинг решения поиска по искусственному интеллекту Azure

Завершено

Azure Monitor дает представление о том, насколько эффективно используется и работает служба поиска. Вы также можете получать оповещения, которые обеспечивают упреждающее уведомление о проблемах.

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

Мониторинг службы "Поиск ИИ Azure" в Azure Monitor

При создании служба ИИ Azure без выполнения других настроек вы можете увидеть текущую задержку поиска, запросы в секунду и процент регулируемых запросов. Эти данные можно просмотреть на вкладке Мониторинг на странице Обзор.

A screenshot of the monitor tab in Azure AI Search.

Вы также можете просмотреть, какие ресурсы использует решение поиска на вкладке Использование.

A screenshot of the usage tab on the overview page of Azure AI Search service.

Эта базовая информация дает хороший старт для начала использования мониторинга, но вы можете пойти дальше, используя ряд дополнительных настроек. Если вы изучили сведения о поддержке других ресурсов на платформе Azure, вы уже знаете, что Azure Monitor можно использовать для всех ресурсов Azure.

На самом деле вы уже узнали, как включить Azure Monitor из урока, посвященного оптимизации производительности. Выполните эти действия, чтобы разрешить Azure Monitor использовать данные, захваченные в Log Analytics, для просмотра полного набора диагностических данных.

После начала работы с Log Analytics вы получите доступ к данным производительности и диагностики в следующих таблицах журналов:

  • AzureActivity — отображает выполненные задачи, например, масштабирование службы поиска
  • AzureDiagnostics — все запросы и операции индексации
  • AzureMetrics — данные, используемые для метрик, которые измеряют работоспособность и производительность службы поиска

Использование метрик для визуального просмотра диагностических данных

Создание диаграмм — это эффективный способ, позволяющий просматривать сведения о производительности службы поиска. В разделе Мониторинг службы поиска выберите Метрики.

A screenshot of the metrics page.

Теперь выберите команду, которая позволяет добавить любую из этих захваченных метрик:

  • DocumentsProcessedCount
  • SearchLatency
  • SearchQueriesPerSecond
  • SkillExecutionCount
  • ThrottledSearchQueriesPercentage

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

Написание запросов Kusto к журналам решений поиска

Log Analytics позволяет создавать любые запросы Kusto к захваченным данным журнала. Самый простой способ выполнить эти запросы — выбрать пункт Журналы в разделе "Монитор". Журналы открывают Log Analytics с окном поиска по поиску в Azure автоматически область.

A screenshot of a Log Analytics Kusto query against the AzureDiagnostic table.

Приведенный выше запрос позволяет просмотреть список последних операций и количество их выполнений.

AzureDiagnostics
| summarize count() by OperationName

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

Запрос

Kusto


Длительные запросы

AzureDiagnostics
| project OperationName, resultSignature_d, DurationMs, Query_s, Documents_d, IndexName_s
| where OperationName == "Query.Search"
| sort by DurationMs

Состояние индексатора

AzureDiagnostics
| project OperationName, Description_s, Documents_d, ResultType, resultSignature_d
| where OperationName == "Indexers.Status"

Коды состояния HTTP

AzureDiagnostics
| where TimeGenerated > ago(7d)
| summarize count() by resultSignature_d
| render barchart

Скорость запросов

AzureDiagnostics
| where OperationName == "Query.Search" and TimeGenerated > ago(1d)
| extend MinuteOfDay = substring(TimeGenerated, 0, 16) 
| project MinuteOfDay, DurationMs, Documents_d, IndexName_s
| summarize QPM=count(), AvgDuractionMs=avg(DurationMs), AvgDocCountReturned=avg(Documents_d)  by MinuteOfDay
| order by MinuteOfDay desc 
| render timechart

Средняя задержка запросов

let intervalsize = 1m; 
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime']..['_endTime']) // Time range filtering
| summarize AverageQueryLatency = avgif(DurationMs, OperationName in ("Query.Search", "Query.Suggest", "Query.Lookup", "Query.Autocomplete"))
by bin(TimeGenerated, intervalsize)
| render timechart

Среднее число запросов в минуту (QPM)

let intervalsize = 1m; 
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime'] .. ['_endTime']) // Time range filtering
| summarize QueriesPerMinute=bin(countif(OperationName in ("Query.Search", "Query.Suggest", "Query.Lookup", "Query.Autocomplete"))/(intervalsize/1m), 0.01)
by bin(TimeGenerated, intervalsize)
| render timechart

Операции индексирования в минуту (OPM)

let intervalsize = 1m; 
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime'] .. ['_endTime']) // Time range filtering
| summarize IndexingOperationsPerSecond=bin(countif(OperationName == "Indexing.Index")/ (intervalsize/1m), 0.01)
by bin(TimeGenerated, intervalsize)
| render timechart

Создание оповещений для получения уведомлений о распространенных проблемах в работе решения поиска

Оповещения позволяют проактивно управлять службой поиска. Ниже приведены некоторые часто используемые оповещения, которые рекомендуется создать:

A screenshot of all the metric you can create alerts for.

  • Задержка поиска — использует сигнал метрики и позволяет указать, при каком значении задержки (в секундах) активируется оповещение
  • Процент регулируемых поисковых запросов — использует сигнал метрики и позволяет указать процент
  • Удаление службы поиска — использует сигнал метрики для журнала действий, позволяя получать уведомление в случае удаления службы поиска
  • Остановка службы поиска — использует сигнал журнала действий, позволяя получать уведомление в случае остановки службы поиска; это происходит, если служба поиска масштабируется или требуется ее перезапуск