Мониторинг решения поиска по искусственному интеллекту Azure
Azure Monitor дает представление о том, насколько эффективно используется и работает служба поиска. Вы также можете получать оповещения, которые обеспечивают упреждающее уведомление о проблемах.
Здесь вы изучите все варианты мониторинга, доступные для поиска ИИ Azure. Затем вы узнаете о полезных оповещениях, которые можно создать для управления решением поиска.
Мониторинг службы "Поиск ИИ Azure" в Azure Monitor
При создании служба ИИ Azure без выполнения других настроек вы можете увидеть текущую задержку поиска, запросы в секунду и процент регулируемых запросов. Эти данные можно просмотреть на вкладке Мониторинг на странице Обзор.
Вы также можете просмотреть, какие ресурсы использует решение поиска на вкладке Использование.
Эта базовая информация дает хороший старт для начала использования мониторинга, но вы можете пойти дальше, используя ряд дополнительных настроек. Если вы изучили сведения о поддержке других ресурсов на платформе Azure, вы уже знаете, что Azure Monitor можно использовать для всех ресурсов Azure.
На самом деле вы уже узнали, как включить Azure Monitor из урока, посвященного оптимизации производительности. Выполните эти действия, чтобы разрешить Azure Monitor использовать данные, захваченные в Log Analytics, для просмотра полного набора диагностических данных.
После начала работы с Log Analytics вы получите доступ к данным производительности и диагностики в следующих таблицах журналов:
- AzureActivity — отображает выполненные задачи, например, масштабирование службы поиска
- AzureDiagnostics — все запросы и операции индексации
- AzureMetrics — данные, используемые для метрик, которые измеряют работоспособность и производительность службы поиска
Использование метрик для визуального просмотра диагностических данных
Создание диаграмм — это эффективный способ, позволяющий просматривать сведения о производительности службы поиска. В разделе Мониторинг службы поиска выберите Метрики.
Теперь выберите команду, которая позволяет добавить любую из этих захваченных метрик:
- DocumentsProcessedCount
- SearchLatency
- SearchQueriesPerSecond
- SkillExecutionCount
- ThrottledSearchQueriesPercentage
Например, можно вывести данные о задержке поиска с указанием процента регулируемых запросов, чтобы узнать, влияет ли регулирование на ответы на запросы.
Написание запросов Kusto к журналам решений поиска
Log Analytics позволяет создавать любые запросы Kusto к захваченным данным журнала. Самый простой способ выполнить эти запросы — выбрать пункт Журналы в разделе "Монитор". Журналы открывают Log Analytics с окном поиска по поиску в Azure автоматически область.
Приведенный выше запрос позволяет просмотреть список последних операций и количество их выполнений.
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
Создание оповещений для получения уведомлений о распространенных проблемах в работе решения поиска
Оповещения позволяют проактивно управлять службой поиска. Ниже приведены некоторые часто используемые оповещения, которые рекомендуется создать:
- Задержка поиска — использует сигнал метрики и позволяет указать, при каком значении задержки (в секундах) активируется оповещение
- Процент регулируемых поисковых запросов — использует сигнал метрики и позволяет указать процент
- Удаление службы поиска — использует сигнал метрики для журнала действий, позволяя получать уведомление в случае удаления службы поиска
- Остановка службы поиска — использует сигнал журнала действий, позволяя получать уведомление в случае остановки службы поиска; это происходит, если служба поиска масштабируется или требуется ее перезапуск