Supervisar el estado y los resultados del indexador en Azure AI Search

Puede supervisar el procesamiento del indexador en Azure Portal o mediante programación a través de llamadas REST o un SDK de Azure. Además del estado sobre el indexador mismo, puede revisar las horas de inicio y finalización, así como los errores y advertencias detallados de una ejecución determinada.

Supervisión mediante Azure Portal

Puede consultar el estado actual de todos los indexadores en la página de información general del servicio de búsqueda. Las páginas del portal se actualizan cada pocos minutos, por lo que no verá evidencia de que una ejecución de indexador nueva se ejecute de inmediato. Seleccione Actualizar en la parte superior de la página para recuperar inmediatamente la vista más reciente.

Indexers list

Estado Descripción
En curso Indica la ejecución activa. El portal entregará información parcial. A medida que avanza la indexación, puede ver que el valor Documentos correctos aumenta en respuesta. Los indizadores que procesan grandes volúmenes de datos pueden tardar mucho en ejecutarse. Por ejemplo, los indizadores que tratan millones de documentos de origen pueden ejecutarse durante 24 horas y, después, reiniciarse casi de inmediato desde el punto en el que se quedaron. Así, el estado de los indizadores de gran volumen podría indicar siempre En curso en el portal. Incluso cuando se está ejecutando un indizador, los detalles sobre el progreso actual y las ejecuciones anteriores están disponibles.
Success Indica que la ejecución se completó correctamente. Una ejecución del indizador puede ser correcta incluso si los documentos individuales tienen errores, siempre y cuando el número de errores sea inferior al valor Máx. de elementos con error del indizador.
Con error El número de errores superó el valor Máx. de elementos con error y la indexación se detuvo.
Restablecer Se restableció el estado de seguimiento de cambios internos del indexador. El indexador se ejecutará en su totalidad, actualizando todos los documentos, no solo aquellos con marcas de tiempo más recientes.

Puede seleccionar un indizador de la lista para ver más detalles sobre sus ejecuciones actuales y recientes.

Indexer summary and execution history

En el gráfico Resumen del indizador se muestra el número de documentos procesados en las ejecuciones más recientes.

En la lista Detalles de la ejecución aparecen como máximo los 50 resultados de las ejecuciones más recientes. Seleccione un resultado de la lista para ver los detalles de una ejecución en concreto. Se incluyen las horas de inicio y finalización, así como los errores y las advertencias que se han producido.

Indexer execution details

Si se produjeron problemas específicos del documento durante la ejecución, se mostrarán en el campo Errores o advertencias.

Indexer details with errors

Las advertencias son comunes con algunos tipos de indizadores y no siempre indican un problema. Por ejemplo, los indexadores que usan los servicios de Azure AI pueden notificar advertencias cuando las imágenes o los archivos PDF no contienen texto para procesar.

Para más información sobre la investigación de los errores y advertencias del indexador, consulte Instrucciones de solución de problemas del indexador.

Supervisión con métricas de supervisión de Azure

Azure AI Search es un recurso supervisado en Azure Monitor, lo que significa que puedes usar el Explorador de métricas para ver métricas básicas sobre el número de documentos procesados por el indizador e invocaciones de aptitudes. Estas métricas se pueden usar para supervisar el progreso del indizador y configurar alertas.

Las vistas de métricas se pueden filtrar o dividir por un conjunto de dimensiones predefinidas.

Nombre de la métrica Descripción Dimensiones Casos de uso de ejemplo
Recuento de documentos procesados Muestra el número de documentos procesados por el indizador. Nombre del origen de datos, error, nombre del índice, nombre del indizador, nombre del conjunto de aptitudes
- Se puede hacer referencia a esta información como una medida aproximada del rendimiento (número de documentos procesados por el indizador en el tiempo)
- Se configura para alertar sobre documentos con errores
Recuento de invocación de ejecución de aptitudes Muestra el número de invocaciones de aptitud. Nombre del origen de datos, error, nombre del índice, nombre del indizador, nombre de la aptitud, tipo de la aptitud, nombre del conjunto de aptitudes
- Referencia para asegurarse de que las aptitudes se invocan según lo previsto mediante la comparación de los números de invocación relativos entre las aptitudes y el número de invocación de aptitudes con el número de documentos.
- Se configura para alertar sobre invocaciones de aptitudes con error

En la captura de pantalla siguiente se muestra el número de documentos procesados por indexadores dentro de un servicio durante una hora, divididos por nombre del indexador.

Indexer documents processed metric

También puede configurar el gráfico para ver el número de invocaciones de aptitudes durante el mismo intervalo de hora.

Indexer skills invoked metric

Supervisión mediante Obtener estado del indexador (API REST)

Puede recuperar el estado y el historial de ejecución de un indizador con el comando Obtener estado del indizador:

GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2020-06-30
api-key: [Search service admin key]

La respuesta contiene el estado general del indexador, la última vez que se invocó al indexador (o en curso) y el historial de las recientes invocaciones al indexador.

{
    "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
    }]
}

El historial de ejecución contiene como máximo las 50 ejecuciones más recientes, dispuestas en orden cronológico inverso (la más reciente en primer lugar).

Tenga en cuenta que hay dos valores de estado diferentes. El estado de nivel superior es para el propio indizador. El estado del indizador En ejecución significa que el indizador se ha configurado correctamente y está disponible para su ejecución, pero no que se esté ejecutando actualmente.

Cada ejecución del indizador también tiene su propio estado, que indica si la ejecución está en curso (En ejecución) o se ha completado con el estado correcto, transientFailure o persistentFailure.

Cuando se restablece un indizador para actualizar su estado de seguimiento de cambios, se agrega una entrada independiente en el historial de ejecución con el estado Restablecer.

Para obtener más información sobre los códigos de estado y los datos de supervisión del indizador, consulte Obtención del estado del indizador.

Supervisión mediante .NET

En el siguiente ejemplo de C# se escribe información sobre el estado de un indizador y los resultados de su ejecución más reciente (o en curso) en la consola.

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
    }
}

La salida de la consola tendrá un aspecto similar al siguiente:

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

Tenga en cuenta que hay dos valores de estado diferentes. El estado de nivel superior es el del propio indizador. El estado del indizador En ejecución significa que el indizador se ha configurado correctamente y está disponible para su ejecución, pero no que se esté ejecutando actualmente.

Cada ejecución del indizador también tiene su propio estado, que indica si la ejecución está en curso (En ejecución) o se ha completado con el estado Correcto o TransientError.

Cuando se restablece un indizador para actualizar su estado de seguimiento de cambios, se agrega una entrada independiente en el historial con el estado Restablecer.

Pasos siguientes

Para obtener más información sobre los códigos de estado y la información de supervisión del indizador, consulte la siguiente referencia de API: