Мониторинг состояния индексатора и результатов поиска ИИ Azure

Вы можете отслеживать процесс обработки индексатором на портале Azure или программно через вызовы REST или пакет SDK для Azure. Помимо состояния самого индексатора можно проверить время начала и окончания работы. Кроме того, можно ознакомиться с подробными сведениями об ошибках и предупреждениях определенного запуска.

Мониторинг с помощью портала Azure

Текущее состояние всех индексаторов можно просмотреть на странице обзора службы поиска. Страницы портала обновляются каждые несколько минут, поэтому вы не сразу увидите свидетельство запуска нового индексатора. Выберите "Обновить" в верхней части страницы, чтобы немедленно получить последнее представление.

Indexers list

Состояние Description
Выполняется Указывает на активное выполнение. Портал будет сообщать информацию о частичном выполнении. По мере выполнения индексирования можно следить за тем, чтобы в ответе было получено значение Успешно обработанные документы. Индексаторы, обрабатывающие большие объемы данных, могут долго выполняться. Например, индексаторы, обрабатывающие миллионы исходных документов, могут работать в течение 24 часов, а затем перезапустить почти сразу, чтобы забрать место, где оно осталось. Таким образом, состояние индексаторов большого объема может всегда говорить о ходе выполнения на портале. Даже если выполняется индексатор, доступны подробные сведения о текущем ходе выполнения и предыдущих запусках.
Успешно Указывает на успешное выполнение. Выполнение индексатора может быть успешным, даже если отдельные документы содержат ошибки, если количество ошибок меньше значения параметра Макс. кол-во элементов с ошибками для индексатора.
Неудачно Количество ошибок превысило параметр Макс. кол-во элементов с ошибками, и индексирование остановлено.
Сбросить Состояние отслеживания внутренних изменений в индексаторе сброшено. Индексатор будет выполняться полностью, обновятся все документы, а не только с новыми метками времени.

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

Indexer summary and execution history

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

В списке Подробности о выполнении отображается до 50 самых последних результатов выполнения. Выберите результат выполнения в списке, чтобы просмотреть особенности этого запуска. Здесь можно увидеть время начала и окончания, а также все возникшие ошибки и предупреждения.

Indexer execution details

Если во время выполнения возникли проблемы, связанные с документом, они будут перечислены в полях "Ошибки и предупреждения".

Indexer details with errors

Предупреждения распространены в некоторых типах индексаторов и не всегда указывают на проблему. Например, индексаторы, использующие службы искусственного интеллекта Azure, могут сообщать предупреждения о том, что файлы изображений или PDF-файлов не содержат текст для обработки.

Дополнительные сведения для изучении ошибок и предупреждений индексатора см. в статье Руководство по устранению проблем с индексатором.

Мониторинг с помощью метрик мониторинга Azure

Поиск ИИ Azure — это отслеживаемый ресурс в Azure Monitor, что означает, что вы можете использовать метрики Обозреватель, чтобы просмотреть основные метрики о количестве обработанных индексатором документов и вызовов навыков. Эти метрики можно использовать для мониторинга хода выполнения индексатора и настройки оповещений.

Представления метрик можно отфильтровать или разделить по набору предопределенных измерений.

Имя метрики Description Измерения Примеры вариантов использования
Число обработанных документов Показывает количество обработанных документов индексатора. Имя источника данных, сбой, имя индекса, имя индексатора, имя набора навыков
— Можно ссылаться на шероховую меру пропускной способности (количество документов, обрабатываемых индексатором с течением времени)
— настройка оповещения о неудачных документах
Число вызовов исполнения навыка Показывает количество вызовов навыка. Имя источника данных, сбой, имя индекса, имя индексатора, имя навыка, тип навыка, имя набора навыков
— Ссылка на обеспечение того, чтобы навыки вызывались должным образом, сравнивая относительные числа вызовов между навыками и числом вызовов навыков с числом документов.
— настройка оповещений о неудачных вызовах навыков

На следующем снимка экрана показано количество документов, обработанных индексаторами в службе в течение часа, разделенных по имени индексатора.

Indexer documents processed metric

Вы также можете настроить граф, чтобы просмотреть количество вызовов навыка в течение одного часа.

Indexer skills invoked metric

Мониторинг с помощью получения состояния индексатора (REST API)

Состояние и журнал выполнения индексатора можно вызвать с помощью команды получения состояния индексатора:

GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2020-06-30
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: