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.
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.
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.
Se houver problemas específicos do documento durante a execução, eles serão listados nos campos Erros e Avisos.
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. Para saber mais sobre as dimensões associadas às métricas Contagem processada do documento e Contagem da invocação da execução de habilidades, consulte Dimensões de métrica.
A captura de tela a seguir mostra o número de documentos processados por indexadores em um serviço durante uma hora, divididos por nome do indexador.
Você também pode configurar o grafo para ver o número de invocações de habilidades no mesmo intervalo de hora.
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=2024-07-01
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 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á 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: