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.
Status | Description |
---|---|
Em Curso | Indica execução ativa. o portal do Azure 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 sempre pode dizer Em andamento no portal do Azure. 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.
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.
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, 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. Para saber mais sobre as dimensões associadas às métricas Contagem processada de documentos e Contagem de invocação de execução de habilidades, consulte Dimensões métricas.
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.
Você também pode configurar o gráfico para ver o número de invocações de habilidade no mesmo intervalo de horas.
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=2024-07-01
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: