Monitorar o status e os resultados do indexador na Pesquisa de IA do Azure

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 sobre o indexador em si, você pode revisar as horas de início e término, além de erros e avisos detalhados de uma execução específica.

Monitorar usando o portal do Azure

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

Indexers list

Estado Description
Em Curso Indica execução ativa. O portal informará sobre informações parciais. À medida que a indexação progride, você pode ver o valor do Docs Successful crescer em resposta. Os indexadores que processam grandes volumes de dados podem levar muito tempo para serem executados. Por exemplo, os indexadores que lidam com milhões de documentos de origem podem ser executados por 24 horas e, em seguida, reiniciar quase imediatamente para continuar de onde parou. Como tal, o status para indexadores de alto volume pode sempre dizer Em andamento no portal. Mesmo quando um indexador está em execução, os detalhes estão disponíveis sobre o progresso contínuo e as execuções anteriores.
Sucesso Indica que a execução foi bem-sucedida. Uma execução de indexador pode ser bem-sucedida mesmo se documentos individuais tiverem erros, se o número de erros for menor do que a configuração Máximo de itens com falha do indexador.
Falhado O número de erros excedeu o máximo de itens com falha e a indexação foi interrompida.
Repor O estado de controle de alterações interno do indexador foi redefinido. O indexador será executado na íntegra, 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 atuais 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 da execução mostra até 50 dos resultados de execução mais recentes. Selecione um resultado de execução na lista para ver os detalhes dessa 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, os indexadores que usam os serviços de IA do Azure podem relatar avisos quando 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, consulte Diretrizes de solução de problemas do indexador.

Monitorar com métricas de 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 visualizações métricas podem ser filtradas ou divididas por um conjunto de dimensões predefinidas.

Nome da Métrica Description Dimensões Casos de utilização de amostra
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 de 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 de habilidade, nome do conjunto de habilidades
- Referência para garantir que as competências são invocadas como esperado, comparando o número relativo de invocações entre as competências e o número de invocações de competências com o número de documentos.
- Configuração para alertar sobre invocações de habilidade com falha

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

Indexer documents processed metric

Você também pode configurar o gráfico para ver o número de invocações de habilidade no mesmo intervalo de horas.

Indexer skills invoked metric

Monitorar usando Obter Status do Indexador (API REST)

Você pode recuperar o status e o histórico de execução de um indexador usando o comando Get Indexer Status:

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 (ou em andamento) chamada 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 inversa (a mais recente primeiro).

Observe que há dois valores de status diferentes. O status de nível superior é para o próprio indexador. Um status de indexador em execução significa que o indexador está configurado corretamente e disponível para execução, mas não que esteja 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á concluída com um status success, transientFailure ou persistentFailure.

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

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

Monitorar usando .NET

O exemplo de C# a seguir grava informações sobre o status de um indexador e os resultados de sua execução mais recente (ou em andamento) 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á mais ou menos assim:

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 há dois valores de status diferentes. O status de nível superior é o status do próprio indexador. Um status de indexador de Running significa que o indexador está configurado corretamente e disponível para execução, mas não que esteja 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 Success 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óximos passos

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