Monitorar uma solução de Pesquisa de IA do Azure
O Azure Monitor pode fornecer informações sobre o desempenho e o desempenho do seu serviço de pesquisa. Você também pode receber alertas para notificá-lo proativamente sobre problemas.
Aqui, você explorará todas as opções de monitoramento disponíveis para o Azure AI Search. Em seguida, você aprenderá sobre alertas úteis que você pode criar para gerenciar sua solução de pesquisa.
Monitorar a Pesquisa de IA do Azure no Azure Monitor
Ao criar seu serviço Azure AI Search, sem fazer nenhuma outra configuração, você pode ver sua latência de pesquisa atual, consultas por segundo e a porcentagem de consultas limitadas. Esses dados podem ser visualizados na guia Monitoramento da página Visão geral .
Você também pode verificar quais recursos sua solução de pesquisa está usando na guia Uso .
Essas informações básicas são um bom começo para o monitoramento, mas você pode ir mais longe com mais algumas configurações. Se estiver familiarizado com o suporte a outros recursos na plataforma Azure, saberá que o Azure Monitor pode ser utilizado para todos os seus recursos do Azure.
Na verdade, você já viu como habilitar o Azure Monitor na unidade de otimização de desempenho . Siga estas etapas para permitir que o Azure Monitor use dados capturados no Log Analytics para ver um conjunto completo de dados de diagnóstico.
Depois de começar a usar o Log Analytics, você terá acesso aos dados de desempenho e diagnóstico nestas tabelas de log:
- AzureActivity - Mostra tarefas que foram executadas, como dimensionar o serviço de pesquisa
- AzureDiagnostics - Todas as operações de consulta e indexação
- AzureMetrics - Dados usados para métricas que medem a integridade e o desempenho do seu serviço de pesquisa
Usar métricas para ver dados de diagnóstico visualmente
A criação de gráficos é uma forma poderosa de ver o desempenho do seu serviço de pesquisa. Na seção Monitoramento do seu serviço de pesquisa, selecione Métricas.
Agora selecione para adicionar qualquer uma destas métricas capturadas:
- DocumentosProcessadoContagem
- Latência de pesquisa
- SearchQueriesPerSecond
- SkillExecutionCount
- ThrottledSearchQueriesPercentage
Por exemplo, você pode plotar a latência da pesquisa em relação à porcentagem de consultas limitadas para ver se as respostas às consultas são afetadas pela limitação.
Escreva consultas Kusto em seus logs de soluções de pesquisa
O Log Analytics permite que você escreva qualquer consulta Kusto em relação aos dados de log capturados. A maneira mais fácil de executar essas consultas é selecionando Logs na seção Monitor . O Logs abre o Log Analytics com a janela de busca automaticamente definida para sua solução Azure AI Search.
A consulta acima permite que você veja uma lista de operações recentes e quantas vezes elas aconteceram.
AzureDiagnostics
| summarize count() by OperationName
Seguem-se consultas úteis para o ajudar a monitorizar e diagnosticar problemas com a sua solução de pesquisa:
Consulta
Kusto
Consultas de longa duração
AzureDiagnostics
| project OperationName, resultSignature_d, DurationMs, Query_s, Documents_d, IndexName_s
| where OperationName == "Query.Search"
| sort by DurationMs
Status do indexador
AzureDiagnostics
| project OperationName, Description_s, Documents_d, ResultType, resultSignature_d
| where OperationName == "Indexers.Status"
Códigos de estado HTTP
AzureDiagnostics
| where TimeGenerated > ago(7d)
| summarize count() by resultSignature_d
| render barchart
Taxas de consulta
AzureDiagnostics
| where OperationName == "Query.Search" and TimeGenerated > ago(1d)
| extend MinuteOfDay = substring(TimeGenerated, 0, 16)
| project MinuteOfDay, DurationMs, Documents_d, IndexName_s
| summarize QPM=count(), AvgDuractionMs=avg(DurationMs), AvgDocCountReturned=avg(Documents_d) by MinuteOfDay
| order by MinuteOfDay desc
| render timechart
Latência média da consulta
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime']..['_endTime']) // Time range filtering
| summarize AverageQueryLatency = avgif(DurationMs, OperationName in ("Query.Search", "Query.Suggest", "Query.Lookup", "Query.Autocomplete"))
by bin(TimeGenerated, intervalsize)
| render timechart
Média de consultas por minuto (QPM)
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime'] .. ['_endTime']) // Time range filtering
| summarize QueriesPerMinute=bin(countif(OperationName in ("Query.Search", "Query.Suggest", "Query.Lookup", "Query.Autocomplete"))/(intervalsize/1m), 0.01)
by bin(TimeGenerated, intervalsize)
| render timechart
Operações de indexação por minuto (OPM)
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime'] .. ['_endTime']) // Time range filtering
| summarize IndexingOperationsPerSecond=bin(countif(OperationName == "Indexing.Index")/ (intervalsize/1m), 0.01)
by bin(TimeGenerated, intervalsize)
| render timechart
Crie alertas para ser notificado sobre problemas comuns de solução de pesquisa
Os alertas podem permitir que você gerencie proativamente seu serviço de pesquisa. Aqui estão alguns alertas comumente usados que você deve considerar criar:
- Latência de pesquisa usando o sinal métrico, você pode especificar qual latência dispara o alerta em segundos
- Porcentagem de pesquisa limitada usando o sinal métrico, você pode especificar a porcentagem
- Excluir Serviço de Pesquisa usando o sinal de registro de atividades, ser notificado se o seu serviço de pesquisa for excluído
- Parar Serviço de Pesquisa usando o sinal de registro de atividades, ser notificado se o serviço de pesquisa for interrompido, o que acontece se o serviço de pesquisa for dimensionado para cima ou para baixo ou precisar ser reiniciado