Monitorar o status e os resultados do indexador no Azure AI Search

Você pode monitorar o processamento do indexador no portal do Azure ou programaticamente por meio de chamadas REST ou um SDK do Azure. Além do status do próprio indexador, você pode revisar os horários de início e término e os erros e avisos detalhados de uma execução específica.

Monitorar usando o portal do Microsoft Azure

Você pode ver o status atual de todos os seus indexadores na página Visão geral do serviço de pesquisa. As páginas do portal são atualizadas a cada poucos minutos, então você não verá evidências de um novo indexador executado imediatamente. Selecione Atualizar na parte superior da página para recuperar imediatamente a exibição mais recente.

Indexers list

Status Descrição
Em Andamento Indica a execução ativa. O portal relatará informações parciais. Conforme a indexação avança, você pode observar o valor do Documentos bem-sucedidos aumentar em resposta. Indexadores que processam grandes volumes de dados podem levar muito tempo para serem executados. Por exemplo, indexadores que lidam com milhões de documentos de origem podem ser executados por 24 horas e reiniciados quase imediatamente para continuar de onde parou. Deste modo, o status para indexadores de alto volume pode sempre dizer Em Andamento no portal. Mesmo quando um indexador está em execução, detalhes estão disponíveis sobre o progresso contínuo e execuções anteriores.
Êxito Indica que a execução foi bem-sucedida. Uma execução do indexador pode ser bem-sucedida mesmo se documentos individuais tiverem erros, se o número de erros for menor que a configuração Máx. de itens com falha do indexador.
Com falha O número de erros excedido Máximo de itens com falha e a indexação foi interrompida.
Restaurar O estado de controle de alterações interno do indexador foi redefinido. O indexador será executado por completo, atualizando todos os documentos, e não apenas aqueles com carimbos de data/hora mais recentes.

Você pode selecionar um indexador na lista para ver mais detalhes sobre as execuções atual e recentes do indexador.

Indexer summary and execution history

O gráfico de resumo do indexador exibe um gráfico do número de documentos processados em suas execuções mais recentes.

A lista Detalhes de execução mostra até 50 dos resultados de execução mais recentes. Selecione um resultado de execução na lista para ver detalhes sobre essa execução. Isso inclui seus horários de início e término e quaisquer erros e avisos que ocorreram.

Indexer execution details

Se houver problemas específicos do documento durante a execução, eles serão listados nos campos Erros e Avisos.

Indexer details with errors

Os avisos são comuns com alguns tipos de indexadores e nem sempre indicam um problema. Por exemplo, indexadores que usam serviços de IA do Azure podem relatar avisos quando os arquivos de imagem ou PDF não contêm nenhum texto para processar.

Para obter mais informações sobre como investigar erros e avisos do indexador, confira Diretrizes de solução de problemas do indexador.

Monitorar com métricas do Monitoramento do Azure

O Azure AI Search é um recurso monitorado no Azure Monitor, o que significa que você pode usar o Metrics Explorer para ver métricas básicas sobre o número de documentos processados pelo indexador e invocações de habilidades. Essas métricas podem ser usadas para monitorar o progresso do indexador e configurar alertas.

As exibições de métrica podem ser filtradas ou divididas por um conjunto de dimensões predefinidas.

Nome da métrica Descrição Dimensões Casos de uso de exemplo
Contagem de documentos processados Mostra o número de documentos processados pelo indexador. Nome da fonte de dados, falha, nome do índice, nome do indexador, nome do conjunto de habilidades
– Pode ser referenciado como uma medida aproximada da taxa de transferência (número de documentos processados pelo indexador ao longo do tempo)
– Configurar para alertar sobre documentos com falha
Contagem de invocação de execução de habilidades Mostra o número de invocações de habilidades. Nome da fonte de dados, falha, nome do índice, nome do indexador, nome da habilidade, tipo da habilidade, nome do conjunto de habilidades
– Referência para garantir que as habilidades sejam invocadas conforme o esperado comparando números de invocações relativos entre habilidades e o número de invocação de habilidades com o número de documentos.
– Configurar para alertar sobre invocações de habilidades com falha

A captura de tela a seguir mostra o número de documentos processados por indexadores em um serviço ao longo de uma hora, divididos por nome do indexador.

Indexer documents processed metric

Você também pode configurar o grafo para ver o número de invocações de habilidades no mesmo intervalo de hora.

Indexer skills invoked metric

Monitorar usando Obter Status do Indexador (REST API)

Você pode recuperar o status e o histórico de execução de um indexador usando o comando Obter status do indexador:

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

A resposta contém o status geral do indexador, a última invocação (ou em andamento) do indexador e o histórico de invocações recentes do 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
    }]
}

O histórico de execução contém até as 50 execuções mais recentes, que são classificadas em ordem cronológica reversa (mais recentes primeiro).

Observe que existem dois valores de status diferentes. O status de nível superior é para o próprio indexador. O status do indexador Em execução significa que ele está configurado corretamente e disponível para execução, mas não que está em execução no momento.

Cada execução do indexador também tem seu próprio status que indica se essa execução específica está em andamento (em execução) ou já foi concluída com um status de sucesso, transientFailure ou persistentFailure.

Quando um indexador é redefinido para atualizar seu estado de controle de alterações, uma entrada de histórico de execução separada é adicionada com um status Redefinir.

Para obter mais informações sobre códigos de status e dados de monitoramento do indexador, confira Obter status do indexador.

Monitorar usando .NET

O exemplo C# a seguir grava informações sobre o status de um indexador e os resultados de sua execução mais recente (ou contínua) no console.

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

A saída no console será semelhante a esta:

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

Observe que existem dois valores de status diferentes. O status de nível superior é o status do próprio indexador. O status do indexador Em execução significa que o indexador está configurado corretamente e disponível para execução, mas não que está em execução no momento.

Cada execução do indexador também tem seu próprio status para saber se essa execução específica está em andamento (Em execução) ou já foi concluída com um status de Sucesso ou TransientError.

Quando um indexador é redefinido para atualizar seu estado de controle de alterações, uma entrada de histórico separada é adicionada com um status Redefinir.

Próximas etapas

Para obter mais informações sobre códigos de status e monitoramento do indexador, confira a seguinte referência de API: