Мониторинг состояния индексатора и результатов поиска ИИ Azure
Вы можете отслеживать процесс обработки индексатором на портале Azure или программно через вызовы REST или пакет SDK для Azure. Помимо состояния самого индексатора можно проверить время начала и окончания работы. Кроме того, можно ознакомиться с подробными сведениями об ошибках и предупреждениях определенного запуска.
Мониторинг с помощью портала Azure
Текущее состояние всех индексаторов можно просмотреть на странице обзора службы поиска. Страницы портала обновляются каждые несколько минут, поэтому вы не сразу увидите свидетельство запуска нового индексатора. Выберите "Обновить" в верхней части страницы, чтобы немедленно получить последнее представление.
Состояние | Description |
---|---|
Выполняется | Указывает на активное выполнение. Портал будет сообщать информацию о частичном выполнении. По мере выполнения индексирования можно следить за тем, чтобы в ответе было получено значение Успешно обработанные документы. Индексаторы, обрабатывающие большие объемы данных, могут долго выполняться. Например, индексаторы, обрабатывающие миллионы исходных документов, могут работать в течение 24 часов, а затем перезапустить почти сразу, чтобы забрать место, где оно осталось. Таким образом, состояние индексаторов большого объема может всегда говорить о ходе выполнения на портале. Даже если выполняется индексатор, доступны подробные сведения о текущем ходе выполнения и предыдущих запусках. |
Успешно | Указывает на успешное выполнение. Выполнение индексатора может быть успешным, даже если отдельные документы содержат ошибки, если количество ошибок меньше значения параметра Макс. кол-во элементов с ошибками для индексатора. |
Неудачно | Количество ошибок превысило параметр Макс. кол-во элементов с ошибками, и индексирование остановлено. |
Сбросить | Состояние отслеживания внутренних изменений в индексаторе сброшено. Индексатор будет выполняться полностью, обновятся все документы, а не только с новыми метками времени. |
Вы можете выбрать индексатор в списке, чтобы просмотреть дополнительные сведения о текущих и последних запусках индексатора.
На диаграмме Сводка индексатора отображается граф количества документов, обработанных в самых последних выполнениях.
В списке Подробности о выполнении отображается до 50 самых последних результатов выполнения. Выберите результат выполнения в списке, чтобы просмотреть особенности этого запуска. Здесь можно увидеть время начала и окончания, а также все возникшие ошибки и предупреждения.
Если во время выполнения возникли проблемы, связанные с документом, они будут перечислены в полях "Ошибки и предупреждения".
Предупреждения распространены в некоторых типах индексаторов и не всегда указывают на проблему. Например, индексаторы, использующие службы искусственного интеллекта Azure, могут сообщать предупреждения о том, что файлы изображений или PDF-файлов не содержат текст для обработки.
Дополнительные сведения для изучении ошибок и предупреждений индексатора см. в статье Руководство по устранению проблем с индексатором.
Мониторинг с помощью метрик мониторинга Azure
Поиск ИИ Azure — это отслеживаемый ресурс в Azure Monitor, что означает, что вы можете использовать обозреватель метрик для просмотра основных метрик о количестве обработанных индексатором документов и вызовов навыков. Эти метрики можно использовать для мониторинга хода выполнения индексатора и настройки оповещений.
Представления метрик можно отфильтровать или разделить по набору предопределенных измерений. Чтобы узнать о измерениях, связанных с метриками, обработанными счетчиками и числом вызовов навыка, см. измерения метрик.
На следующем снимка экрана показано количество документов, обработанных индексаторами в службе в течение часа, разделенных по имени индексатора.
Вы также можете настроить граф, чтобы просмотреть количество вызовов навыка в течение одного часа.
Мониторинг с помощью получения состояния индексатора (REST API)
Состояние и журнал выполнения индексатора можно вызвать с помощью команды получения состояния индексатора:
GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2024-07-01
api-key: [Search service admin key]
Ответ содержит сведения об общем состоянии индексатора, последнем (или текущем) вызове индексатора, а также журнал последних вызовов индексатора.
{
"status":"running",
"lastResult": {
"status":"success",
"errorMessage":null,
"startTime":"2018-11-26T03:37:18.853Z",
"endTime":"2018-11-26T03:37:19.012Z",
"errors":[],
"itemsProcessed":11,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
"executionHistory":[ {
"status":"success",
"errorMessage":null,
"startTime":"2018-11-26T03:37:18.853Z",
"endTime":"2018-11-26T03:37:19.012Z",
"errors":[],
"itemsProcessed":11,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
}]
}
Журнал выполнения содержит до 50 последних выполнений, которые сортируются в обратном хронологическом порядке (начиная с самых новых).
Обратите внимание, что существует два разных значения состояния. Состояние самого индексатора находится на верхнем уровне. Состояние индексатора означает, что индексатор настроен правильно и доступен для выполнения, но не работает в данный момент.
Каждое выполнение индексатора также имеет собственное состояние, которое указывает, запущено ли это конкретное выполнение (running) или уже завершено с состоянием success, transientFailure или persistentFailure.
Когда индексатор сбрасывается для обновления своего состояния отслеживания изменений, то добавляется отдельная запись журнала выполнения с состоянием Reset.
Дополнительные сведения о кодах состояния и данных мониторинга индексатора см. в разделе "Получение состояния индексатора".
Мониторинг с помощью .NET
В следующем примере C# записывается информация о состоянии индексатора и результатах последнего запуска (или текущего) в консоль.
static void CheckIndexerStatus(SearchIndexerClient indexerClient, SearchIndexer indexer)
{
try
{
string indexerName = "hotels-sql-idxr";
SearchIndexerStatus execInfo = indexerClient.GetIndexerStatus(indexerName);
Console.WriteLine("Indexer has run {0} times.", execInfo.ExecutionHistory.Count);
Console.WriteLine("Indexer Status: " + execInfo.Status.ToString());
IndexerExecutionResult result = execInfo.LastResult;
Console.WriteLine("Latest run");
Console.WriteLine("Run Status: {0}", result.Status.ToString());
Console.WriteLine("Total Documents: {0}, Failed: {1}", result.ItemCount, result.FailedItemCount);
TimeSpan elapsed = result.EndTime.Value - result.StartTime.Value;
Console.WriteLine("StartTime: {0:T}, EndTime: {1:T}, Elapsed: {2:t}", result.StartTime.Value, result.EndTime.Value, elapsed);
string errorMsg = (result.ErrorMessage == null) ? "none" : result.ErrorMessage;
Console.WriteLine("ErrorMessage: {0}", errorMsg);
Console.WriteLine(" Document Errors: {0}, Warnings: {1}\n", result.Errors.Count, result.Warnings.Count);
}
catch (Exception e)
{
// Handle exception
}
}
Результат в консоли должен выглядеть следующим образом:
Indexer has run 18 times.
Indexer Status: Running
Latest run
Run Status: Success
Total Documents: 7, Failed: 0
StartTime: 11:29:31 PM, EndTime: 11:29:31 PM, Elapsed: 00:00:00.2560000
ErrorMessage: none
Document Errors: 0, Warnings: 0
Обратите внимание, что существует два разных значения состояния. Состояние самого индексатора находится на верхнем уровне. Состояние индексатора выполнения означает, что индексатор настроен правильно и доступен для выполнения, но не выполняется в данный момент.
Каждое выполнение индексатора также имеет собственное состояние, определяющее, запущено ли это конкретное выполнение (Running) или уже завершено с состоянием Success или TransientError.
Когда индексатор сбрасывается для обновления своего состояния отслеживания изменений, то добавляется отдельная запись журнала с состоянием Reset.
Следующие шаги
Дополнительные сведения о кодах состояния и сведениях о мониторинге индексатора см. в следующем справочнике по API: